Ubuntu24.04安装Docker过程记录

一. 问题引入

我之前选择的云服务器的系统镜像都是Ubuntu22.04,也记录了相应的安装Dcoker的详细过程及遇到的问题。

但是在最近购买的云服务器中,我想试下最新的Ununtu24.04,在复用Ubuntu22.04的安装教程中,就出现了问题。 在多番试错之后重新安装成功,在此将新的安装过程整理出来,以备后面复用。

二. 安装报错

1. 下载dcoker密钥失败

问题描述:

ubuntu24.04 安装docker过程中,执行curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -指令报错:

vbnet 复制代码
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
curl: (35) Recv failure: Connection reset by peer
gpg: no valid OpenPGP data found.

原因分析:

由于旧的apt-key命令已被弃用,并且在下载DPG密钥时出现了网络连接问题。

解决方案:

理解问题与调整方法
  • apt-key已弃用 :自Ubuntu 22.04及以后的版本,apt-key命令已被弃用。继续使用它会看到警告,但关键是要采用新的方法来管理APT密钥。
  • 新的密钥管理方式 :现在推荐将GPG密钥单独存放在/etc/apt/keyrings或/usr/share/keyrings/目录下,并在配置软件源时,通过signed-by选项直接指向这个密钥文件。
  • 网络连接问题 :curl: (35) Recv failure: Connection reset by peer这个错误通常是由于网络连接不稳定,或者服务器端问题导致的。对于国内用户,直接从Docker官方下载源获取资源速度可能较慢或不稳定。

安装过程

第1步: 手动下载并安装Docker的GPG密钥

鉴于网络问题,我们将手动下载密钥,并采用新的方式安装。

  1. 创建存储密钥的目录(如果目录不存在):

    bash

    bash 复制代码
    sudo mkdir -p /etc/apt/keyrings
  2. 手动下载Docker的GPG密钥 :

    你可以尝试直接用浏览器访问 https://download.docker.com/linux/ubuntu/gpg 来下载密钥文件。如果浏览器也无法访问,可能需要检查网络连接或临时使用代理。

    如果命令行工具curl可用,但连接官方地址不稳定,可以使用国内镜像源。例如,使用阿里云的镜像:

    bash

    bash 复制代码
    sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

    这里使用了阿里云的Docker CE镜像源来获取GPG密钥,通常在国内的访问速度会更稳定。

  3. 验证密钥文件 :

    下载完成后,确保密钥文件不为空。你可以使用 ls -l /etc/apt/keyrings/docker.asc 命令查看文件大小。

第2步:添加使用新密钥的Docker软件源

现在,我们来添加Docker的软件源,并在源中明确指定刚才下载的密钥文件。

  1. 添加软件源 :

    同样,为了获得更快的下载速度,我们继续使用阿里云的镜像来添加软件源。

    bash

    bash 复制代码
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    • [arch=$(dpkg --print-architecture):自动检测当前系统架构(如amd64, arm64等)。
    • signed-by=/etc/apt/keyrings/docker.asc:明确指定用于验证此软件源的GPG密钥文件路径。
    • https://mirrors.aliyun.com/docker-ce/linux/ubuntu:使用阿里云提供的Docker CE镜像源。
    • $(lsb_release -cs):自动获取当前Ubuntu系统的代号(例如,Jammy、Focal等)。
第3步:安装Docker CE

软件源配置完成后,就可以安装Docker了。

  1. 更新软件包列表:

    bash

    sql 复制代码
    sudo apt update

    这个命令会读取新添加的Docker软件源。

  2. 安装Docker CE:

    bash

    lua 复制代码
    sudo apt install docker-ce docker-ce-cli containerd.io
  3. 验证安装 :

    安装完成后,可以运行一个测试容器来验证Docker是否安装成功:

    bash

    css 复制代码
    sudo docker --version

💡 其他网络问题应对策略

1. 下载GPG密钥失败

如果在手动下载GPG密钥这一步仍然遇到网络问题,可以尝试以下方法:

  • 检查网络连接 :使用 ping mirrors.aliyun.com 测试到镜像源的网络连通性。
  • 调整curl参数 :尝试给curl命令增加 --retry 3 参数,让它在失败时自动重试几次。
  • 使用更友好的网络环境:如果你处在受限制的网络中(如公司内网),可能需要配置代理或联系网络管理员。

2. 拉取镜像失败

因为连接国外官方镜像仓库失败,可用配置国内镜像仓库。

linux修改方法
  1. 修改/etc/docker/daemon.json文件,添加镜像仓库配置
json 复制代码
{
  "registry-mirrors": ["https://docker.xuanyuan.me"]
}
  1. 重新加载配置并重启 Docker 服务

    sudo systemctl daemon-reload
    sudo systemctl restart docker

  2. 查看Registry Mirrors是否已更新

perl 复制代码
docker info | grep -A 10 "Registry Mirrors"
windows修改方法

Windows平台上,可用通过Docker Desktop来进行修改。

  1. 打开Docker Desktop
  2. 点击右上角的设置按钮(齿轮ICON)
  3. 左侧菜单点击Docker Engine
  4. 修改daemon.json文件,添加镜像仓库配置,修改配置内容与Linux一致
  5. 点击Apply,重启Docker Desktop
  6. 打开cmd或者powershell通过指令查看Registry Mirrors是否已更新(与Linux一致)

目前经验证不可用的镜像:

目前经验证可用的镜像:

  1. 阿里云镜像加速器

需要注册并获取专属地址,且仅在阿里云服务器内可用

镜像地址:https://<你的ID>.mirror.aliyuncs.com

  1. 腾讯云镜像加速器 仅在腾讯云服务器可用 镜像地址: https://mirror.ccs.tencentyun.com

  2. 轩辕镜像 分免费版与专业版 免费版: docker.xuanyuan.me 专业版: xuanyuan.cloud

不建议使用,免费版拉取时会报错403 Forbidden,专业版需要收费,且镜像源非官方非大厂或可靠机构,安全性存疑

最终解决方案:

使用梯子,下载官方镜像

相关推荐
小白的码BUG之路2 小时前
Docker -- No space left on device
运维·docker·容器
程序员老陆3 小时前
Docker 命令全景指南:从镜像构建到生产运维
运维·docker·容器
灯澜忆梦14 小时前
【minio】#1 | 简介与安装
docker·对象存储·minio
江湖有缘1 天前
3款开源绘图工具整理合集,可Docker一键部署!
docker·容器·开源
TTATTC1 天前
告别协议选型内耗:深入拆解微服务“内部 gRPC + 边界 REST”混合通信架构与 Envoy 转码实战
docker·开源
光依旧2 天前
PageIndex没翻车,翻车的是我的解析器
docker·langchain·大模型·向量数据库·pdf解析·rag·pageindex
谢亮_vipxieliang2 天前
容器排障实战手册:从日志到内核的分层排障
docker·云原生·容器·eureka
梦想不只是梦与想2 天前
Docker 常用命令
docker
小白的码BUG之路2 天前
Docker -- 构建ruoyi-gateway镜像
docker·容器·gateway
小白的码BUG之路2 天前
Docker -- 构建ruoyi-system镜像
运维·docker·容器