当前位置: 代码网 > it编程>开发工具>Docker > 在 Ubuntu Server 22.04 上安装 Docker 的详细步骤

在 Ubuntu Server 22.04 上安装 Docker 的详细步骤

2024年08月06日 Docker 我要评论
通过上述步骤,我们成功在 Ubuntu Server 22.04 上安装并配置了 Docker。遇到的问题主要集中在 DNS 解析和镜像加速器配置上,通过调整配置文件和更换镜像源,我们顺利解决了这些问题。

在 ubuntu server 22.04 上安装 docker 的详细步骤

本文档详细记录了在 ubuntu server 22.04 上安装 docker 的完整过程,包括解决过程中遇到的问题。希望能对读者有所帮助。

安装过程,重点需要看官方文档。https://docs.docker.com/engine/install/ubuntu/

目录

  1. 卸载冲突的软件包
  2. 更新系统软件包
  3. 安装依赖包
  4. 添加 docker 中科大 gpg 密钥
  5. 添加 docker 中科大镜像稳定版软件源
  6. 再次更新软件包
  7. 安装最新版本的 docker
  8. 配置 docker 使用镜像加速器(hub)
  9. 重新启动 docker 服务
  10. 验证 docker 安装
  11. 实时查看 docker 服务日志
  12. 附加资源
  13. 总结

步骤 1:卸载冲突的软件包

在安装 docker engine 之前,您需要卸载所有有冲突的软件包。发行版维护者在 apt 中提供了 docker 软件包的非官方发行版。您必须先卸载这些软件包,然后才能安装 docker engine 的正式版本。

要卸载的非官方软件包包括:

  • docker.io
  • docker-compose
  • docker-compose-v2
  • docker-doc
  • podman-docker

此外,docker engine 依赖于 containerdrunc。docker engine 将这些依赖项捆绑为一个包:containerd.io。如果您之前安装了 containerdrunc,请卸载它们以避免与 docker engine 捆绑的版本发生冲突。

运行以下命令来卸载所有冲突的包:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

apt-get 可能会报告您没有安装这些包。

注意:卸载 docker 时,不会自动删除存储在 /var/lib/docker/ 中的图像、容器、卷和网络。如果您想从全新安装开始,并且希望清理所有现有数据,请阅读 卸载 docker engine 部分。

步骤 2:更新系统软件包

首先,更新系统中的现有软件包:

sudo apt update

步骤 3:安装依赖包

安装必要的依赖包,这些包用于通过 https 获取软件仓库:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

步骤 4:添加 docker 中科大 gpg 密钥

为了确保下载的 docker 软件包的真实性和完整性,我们需要添加 docker 的 gpg 密钥:

sudo mkdir -p /etc/apt/keyrings
sudo curl -fssl http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

可能的问题

  • 无法下载 gpg 密钥

    • 错误信息curl: (6) could not resolve host: mirrors.ustc.edu.cn
    • 解决方案:在网上搜索其他镜像站点。参考连接:https://blog.csdn.net/m0_46471328/article/details/138043873

    背景知识:gpg 密钥用于验证软件包的完整性和真实性,确保下载的软件包没有被篡改。

步骤 5:添加 docker 中科大镜像稳定版软件源

我们使用中科大的镜像源来加快下载速度:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

可能的问题

  • 镜像源添加失败

    • 错误信息bash: /etc/apt/sources.list.d/docker.list: permission denied
    • 解决方案:确保使用 sudo 运行命令以获得必要的权限。

    背景知识:软件源是存储软件包的服务器地址,添加 docker 的中科大镜像源可以加快下载速度,并提高可靠性。

步骤 6:再次更新软件包

添加新的 docker 软件源后,再次更新系统中的软件包索引:

sudo apt update

可能的问题

  • 更新失败

    • 错误信息failed to fetch http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/dists/focal/stable/binary-amd64/packages 404 not found
    • 解决方案:检查 sources.list.d/docker.list 文件中的镜像源地址是否正确,并确认中科大镜像源可用。

    背景知识:更新软件包索引是为了让系统知道最新的软件包信息,包括新添加的软件源中的包。

步骤 7:安装最新版本的 docker

安装 docker 及其依赖包:

sudo apt install docker-ce docker-ce-cli containerd.io

可能的问题

  • 安装失败

    • 错误信息e: unable to locate package docker-ce
    • 解决方案:确保之前步骤中的镜像源已正确添加并更新了软件包索引。

    背景知识:docker 是一个开源的平台,用于开发、交付和运行应用程序。它将应用程序及其依赖项打包到一个标准化的单元中,称为容器。

步骤 8:配置 docker 使用镜像加速器(hub)

由于国内访问 docker hub 可能会有速度和连接问题,我们配置 docker 使用腾讯云的镜像加速器:

sudo mkdir -p /etc/docker
echo '{
    "registry-mirrors": ["https://ccr.ccs.tencentyun.com"]
}' | sudo tee /etc/docker/daemon.json > /dev/null

可能的问题

  • 无法访问镜像加速器

    • 错误信息dial tcp: lookup ccr.ccs.tencentyun.com on 127.0.0.53:53: no such host
    • 解决方案:确保配置的镜像加速器地址正确并可访问,可能需要更换其他地址。地址 127.0.0.53:53 是一个本地 dns 缓存服务,通常是由系统的 systemd-resolved 服务提供的。

    背景知识:镜像加速器可以提高从 docker hub 拉取镜像的速度,特别是在国内网络环境下。

步骤 9:重新启动 docker 服务

使配置生效,重新启动 docker 服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

步骤 10:验证 docker 安装

运行一个简单的 docker 容器来验证安装是否成功:

sudo docker run hello-world

可能的问题

  • 无法访问 docker hub

    • 错误信息denied: requested access to the resource is denied unauthorized: authentication required
    • 解决方案:通过以下命令登录 docker hub:
    sudo docker login
    

    按照提示输入 docker hub 用户名和密码即可。

  • 网络连接问题

    • 错误信息dial tcp: lookup registry-1.docker.io on 127.0.0.53:53: no such host
    • 解决方案:配置镜像加速器并重启 docker 服务后,再次尝试拉取镜像。

    背景知识hello-world 镜像是一个非常小的镜像,用于验证 docker 是否正常工作。

实时查看 docker 服务日志

你可以使用以下命令实时查看 docker 服务的日志:

sudo journalctl -u docker.service -f

这个命令的作用是:

  • sudo:以超级用户权限运行命令。
  • journalctl:查看系统日志的命令。
  • -u docker.service:指定查看 docker 服务的日志。
  • -f:实时查看日志输出,类似于 tail -f

附加资源

总结

通过上述步骤,我成功在 ubuntu server 22.04 上安装并配置了 docker。主要就是镜像地址问题,通过调整配置文件和更换镜像源,我顺利解决了这些问题。希望你也一样。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com