Ubuntu 24.04 LTS系统安装Docker踩的坑

devtools/2025/1/12 0:36:15/

一开始我跟着Docker给出的官网文档 Ubuntu | Docker Docs 流程走,倒腾了两个多小时,遇到了各种坑,最后放弃了。在我们使用脚本安装Docker命令前,我们先把已经安装的Docker全部卸载掉。

卸载Docker

1.删除docker及安装时自动安装的所有包

sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc

2.查看docker是否卸载干净

sudo dpkg -l | grep dockersudo dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P  # 删除无用的相关的配置文件

3.删除没有删除的相关插件

sudo apt-get autoremove docker-ce-*

4.删除docker的相关配置&目录

rm -rf /etc/systemd/system/docker.service.d
5.确定docker卸载完毕
docker --version

然后根据 docker官方一键脚本 这个教程使用官方脚本自动安装Docker,前三步成功了,第四步出问题了。

安装Docker

1. 下载官方安装脚本

curl -fsSL https://test.docker.com -o test-docker.sh

2. 执行脚本

sudo sh test-docker.sh

3. 查看Docker版本信息,若能输出版本信息则证明安装成功

chen@QiLin:~$ sudo docker version[sudo] password for chen: 
Client: Docker Engine - CommunityVersion:           27.5.0-rc.2API version:       1.47Go version:        go1.22.10Git commit:        80f7848Built:             Tue Jan  7 15:41:26 2025OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          27.5.0-rc.2API version:      1.47 (minimum version 1.24)Go version:       go1.22.10Git commit:       43fc912Built:            Tue Jan  7 15:41:26 2025OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.7.24GitCommit:        88bf19b2105c8b17560993bee28a01ddc2f97182runc:Version:          1.2.2GitCommit:        v1.2.2-0-g7cb3632docker-init:Version:          0.19.0GitCommit:        de40ad0

4. 尝试运行hello-world镜像来验证Docker是否正确安装

chen@QiLin:~$ sudo docker run hello-worldUnable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": read tcp 10.16.6.16:38474->54.227.20.253:443: read: connection reset by peer.
See 'docker run --help'.

网上教程说在使用Docker拉取镜像时,有时会遇到 Error response from daemon 错误是由于 Docker 无法在规定时间内成功连接到 Docker Hub 或由于网络不稳定而超时引起的。解决这一问题的有效方法是配置 Docker 镜像加速器,提高拉取镜像的速度,避免因网络超时而失败。

解决方法:配置 Docker 镜像加速器

为了避免 Docker 镜像拉取失败,我们可以配置国内或其他可用的镜像源加速器,减少网络连接的超时问题。打开 Docker 的配置文件 daemon.json。该文件通常位于:/etc/docker/daemon.json,然后添加镜像加速器。

sudo vi /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://docker.unsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://docker.chenby.cn","http://mirror.azure.cn","https://dockerpull.org","https://dockerhub.icu","https://hub.rat.dev"]
}

这些镜像源能够有效加速 Docker 镜像的下载,尤其是在国内的网络环境下,可以显著提高镜像拉取速度,并减少因网络不稳定导致的超时错误。

最终我的 daemon.json文件包含如下内容,小伙伴们可以尽情copy。

{"insecure-registries": ["registry.local", "127.0.0.1:5001", "10.10.13.42:5000"],"registry-mirrors": ["https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://docker.unsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://docker.chenby.cn","http://mirror.azure.cn","https://dockerpull.org","https://dockerhub.icu","https://hub.rat.dev"],"bip": "172.18.18.1/24","data-root": "/var/lib/docker","storage-driver": "overlay2","live-restore": true,"log-opts": {"max-size": "500m"}
}

注意:在编辑 daemon.json 文件时,确保 JSON 格式正确。特别注意,最后一个镜像加速器地址后不要加逗号,否则会导致 Docker 启动失败。如果使用某些镜像加速器时依然遇到问题,可能是这些加速器暂时不可用。建议更换其他加速器,或者使用官方的 Docker 镜像加速服务。

配置完成后,保存文件并重启 Docker 服务,以使更改生效。

sudo systemctl daemon-reload
sudo systemctl restart docker

然后重新运行:sudo docker run hello-world

sudo docker run hello-worldUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete 
Digest: sha256:5b3cc85e16e3058003c13b7821318369dad01dac3dbb877aac3c28182255c724
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

成功!!!!!


http://www.ppmy.cn/devtools/149734.html

相关文章

Springboot3.x工程创建及必要引用(基础篇)

下面从环境的安装和配置开始,到Springboot3.x工程创建,记录一下让完全没有基础的小白用户也能够开始自己的第一个项目。 准备 安装JDK环境(这里最好安装JDK17及以上版本)安装IntelliJ IDEA Ultimate工具(可以从官网下…

第37周:咖啡豆识别 (Tensorflow实战第七周)

目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 可视化数据 2.3 配置数据集 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 3.2.1 直接调用官方 3.2.2 自建模型 四、编译 4.1 设置动态学习率 五、模型训…

基于Qt的OFD阅读器开发原理与实践

摘要 本文详细探讨了基于Qt开发OFD阅读器的原理与实践。通过解析OFD文件格式、构建文档结构、实现页面渲染、处理用户交互以及进行性能优化,本文展示了如何使用Qt框架开发一个功能强大、性能优异的OFD阅读器。文章还提供了示例代码和未来发展方向,为开发…

Qt天气预报系统鼠标拖动窗口

Qt天气预报系统 1、鼠标拖动窗口1.1重写鼠标移动函数1.2添加定义1.3定义一个偏移值1.4判断鼠标左键是否被按下1.5计算当前鼠标位置与窗口左上角位置的偏移值1.6移动窗口 2、.h文件和.cpp文件2.1 .h文件2.2 .cpp文件 3、结论 1、鼠标拖动窗口 1.1重写鼠标移动函数 protected:v…

新冠肺炎服务预约微信小程序的设计与实现ssm+论文源码调试讲解

第4章 系统设计 4.1 系统设计的原则 在系统设计过程中,也需要遵循相应的设计原则,这些设计原则可以帮助设计者在短时间内设计出符合设计规范的设计方案。设计原则主要有可靠性,安全性,可定制化,可扩展性,可…

springCloudGateWay使用总结

1、什么是网关 功能: ①身份认证、权限验证 ②服务器路由、负载均衡 ③请求限流 2、gateway搭建 2.1、创建一个空项目 2.2、引入依赖 2.3、加配置 3、断言工厂 4、过滤工厂 5、全局过滤器 6、跨域问题

智慧公厕大数据驱动下的公共卫生管理与优化

在快速发展的城市化进程中,公共卫生问题日益凸显,成为城市管理的重要议题。智慧公厕,作为公共卫生设施的一次革命性创新,正借助物联网技术的东风,引领公共卫生进入一个全新的生态时代。本文将深入探讨智慧公厕如何利用…

C语言:枚举类型

一、枚举类型的声明 枚举顾名思义就是一一列举。我们可以把可能的取值一一列举。比如我们现实生活中: 星期一到星期日是有限的7天,可以一一列举 ;性别有:男、女、保密,也可以一一列举 ;月份有12个月&#x…