Ubuntu 24.04 LTS系统安装Docker踩的坑

ops/2025/1/12 2:14:35/

一开始我跟着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/ops/149315.html

相关文章

Stable Diffusion本地部署教程(附安装包)

想使用Stable Diffusion需要的环境有哪些呢? python3.10.11(至少也得3.10.6以上):依赖python环境NVIDIA:GPUgit:从github上下载包(可选,由于我已提供安装包,你可以不用git)Stable Diffusion安装包工具包: NVIDIA:https://developer.nvidia.com/cuda-toolkit-archiv…

Spring5框架之SpringMVC

目录 1.SpringMVC的入门案例 1.1 通过maven构建一个web项目 1.2 添加对应的依赖及Tomcat插件 1.3 创建SpringMVC的配置文件 1.4 在web.xml中注册DispatchServlet 1.5 创建自定义的Controller 1.6 在Springmvc配置文件中注册 原理分析: 2.SpringMVC基于注解的…

自动驾驶3D目标检测综述(七)

本章紧接上一章内容,讲述第九章的内容:在驾驶系统中的3D目标检测。 目录 一、自动驾驶端到端学习 (一)问题和挑战 (二)联合感知和预测 (三)联合感知、预测和规划 (四…

机器人避障不再“智障”:HEIGHT——拥挤复杂环境下机器人导航的新架构

导读: 由于环境中静态障碍物和动态障碍物的约束,机器人在密集且交互复杂的人群中导航,往往面临碰撞与延迟等安全与效率问题。举个简单的例子,商城和车站中的送餐机器人往往在人流量较大时就会停在原地无法运作,因为它不…

uniapp 使用 pinia 状态持久化

1.创建文件 stores -index.js -global.js2.对应文件内容 index.js 安装插件 npm i pinia-plugin-persistedstate import { createPinia } from pinia; import persist from pinia-plugin-persistedstate; const pinia createPinia(); pinia.use(persist); export default pi…

Android原生开发同一局域网内利用socket通信进行数据传输

1、数据接收端代码如下,注意:socket 接收信息需要异步运行: // port 端口号自定义一个值,比如 8888,但需和发送端使用的端口号保持一致 ServerSocket serverSocket new ServerSocket(port); while (true) {//这里为了…

解密Navicat密码(Java)

最近从Navicat换到了DBeaver,导出配置文件发现配置文件里的密码都是加密的,看网上的都是给的PHP代码,因为环境问题,就算是在线上运行的PHP代码也会报错,所以就把这段代码改成Java了。 package com.unicdata.system.con…

uniapp 导入uview-plus,使用组件出现,页面出现<up-parse>元素不存在,请检查你的代码

错误截图: 原因: 未按照官网方式进行配置,需要进行以下配置。具体详情 // pages.json {"easycom": {"autoscan": true,// 注意一定要放在custom里,否则无效,https://ask.dcloud.net.cn/question…