ubuntu22.04安装docker以及安装过程中报错解决方法

前言

Docker安装官方有详细的说明文档,虽然是全英文的,但是对于第一次安装来说跟着官方的步骤不会出错

官网安装有个小坑:Docker官网正常打开会非常慢或者打不开,遇到打不开的情况就是网络的问题(大家懂的),所以在参照官方文档进行安装时,有时候出现安装失败原因在于官方使用的是自己的镜像网站,由于网络不可达导致需要的包下载不下来,这时需要换成国内镜像比如清华、阿里云的

同时注意官网推荐ubuntu版本在22.04以上

以下的安装镜像采用清华大学提供的镜像网站,如果你的linux能正常访问谷歌,可以直接按照官网的提示安装,就不需要往下看了

安装步骤

1、移除之前安装的docker依赖(如果曾经安装过)

shell 复制代码
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)

2、更新apt源

shell 复制代码
sudo apt update

3、安装SSL证书包(报错看解决方法1)

shell 复制代码
sudo apt install ca-certificates curl

4、创建密钥存放目录

shell 复制代码
sudo install -m 0755 -d /etc/apt/keyrings

5、拉取docker官方密钥(报错看解决方法2)

shell 复制代码
sudo curl -fsSL http://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

6、修改密钥读取权限

shell 复制代码
sudo chmod a+r /etc/apt/keyrings/docker.asc

7、修改docker源配置

shell 复制代码
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update

8、安装docker

shell 复制代码
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

9、启动docker

docker被systemctl所托管,可以使用systemctl命令去启动、停止、查看docker当前状态

shell 复制代码
# 查看当前状态
sudo systemctl status docker
# 启动docker
sudo systemctl start docker
# 停止docker
sudo systemctl stop docker
# 重启docker
sudo systemctl restart docker

到此docker安装完成

10、测试docker是否正常运行

通过从官方拉取hello-world镜像运行,一开始会提示在本地无法找到,会自动进行下载

shell 复制代码
sudo docker run hello-world

报错解决方法

1、安装SSL证书时提示连接重定向

如果你的电脑网络是不能访问谷歌的 ,那把镜像链接换成国内的,比如这里选择换成清华大学的镜像,更多镜像链接请查看结尾参考文章2

shell 复制代码
sudo curl -fsSL http://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

2、运行hello-world提示拒绝连接

这里是由于docker尝试拉取镜像时超时,还是网络的问题,重新添加镜像源

shell 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'

# 上一条命令输入后会出现 > 这个输入命令,把下面字符串复制粘贴
{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF

重新加载docker配置并重启

shell 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

检查刚刚镜像源是否已经加载成功

shell 复制代码
sudo docker info

参考文章

相关推荐
桌面运维家5 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang133830890755 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻5 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_949847757 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906947 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗8 小时前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB8 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
codezzzsleep8 小时前
学术汇报 PPT 自动化生成实战指南
运维·自动化·powerpoint
古法老登瞎折腾9 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
讯捷蓝达9 小时前
IBM V3500存储 双控故障、数据怎么恢复?
运维