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

dockersystemctl所托管,可以使用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

参考文章

相关推荐
审判长烧鸡8 小时前
【AI问答/Docker】Docker全命令对照表:命令+中文+示例+示例说明
docker·ai
RisunJan8 小时前
Linux命令-nologin(用于系统账户或需要禁止交互式登录的场景)
linux·运维
倔强的石头1068 小时前
【Linux指南】Linux快捷键与系统实用技巧
linux·运维·服务器
番茄地瓜8 小时前
Linux 配置静态 IP 步骤
linux·运维·服务器
小肥君8 小时前
docker无法连接GPU资源解决方案
docker·容器·eureka
.千余9 小时前
【Linux】 传输层协议UDP:从端口号到传输机制
linux·运维·udp
viva517210 小时前
Docker/历史演进,核心功能,相关工具
docker
囚~徒~10 小时前
轻量化的虚拟机
linux·运维·服务器
SteveSenna10 小时前
Ubuntu 20.04 安装 Isaac Sim 4.5 + Isaac Lab
linux·运维·服务器
开开心心就好10 小时前
支持多显示器的Windows高效分屏工具
运维·python·科技·游戏·计算机外设·ocr·powerpoint