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

07-21 1338阅读

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

本文档详细记录了在 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 依赖于 containerd 和 runc。Docker Engine 将这些依赖项捆绑为一个包:containerd.io。如果您之前安装了 containerd 或 runc,请卸载它们以避免与 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。

                                附加资源

                                • Docker 官方文档
                                • Docker Hub
                                • Docker 入门指南
                                • Docker 社区支持

                                  总结

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

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]