# 正常 Ubuntu 下安装 Docker 步骤
开始前,我们需要运行以下命令以卸载所有冲突的软件包
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 的 apt 仓库
# 官方源
# 添加 Docker 的 GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# 添加软件源信息
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# 阿里源
# 安装必要的一些系统工具
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
# 信任 Docker 的 GPG 公钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 写入软件源信息
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# 安装 Docker
运行以下命令安装最新版本:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin`
安装特定版本的 Docker Engine,首先列出存储库中可用的版本:
# 列出存储库中可用的版本:
apt-cache madison docker-ce | awk '{ print $3 }'
5:27.5.0-1~ubuntu.24.04~noble
5:27.4.1-1~ubuntu.24.04~noble
...
选择所需版本并安装:
VERSION_STRING=5:27.5.0-1~ubuntu.24.04~noble
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
# 使用 hello-world 镜像验证是否成功安装
sudo docker run hello-world
此命令下载一个测试镜像并在容器中运行它。当容器运行时,它会输出一条确认消息然后退出。
安装结束。
# Linux Mint 下遇到的坑
安装正常的 Ubuntu 步骤,在 Linux Mint 下添加 Docker 软件源后,会在 apt-get update 步骤下报错,报错内容如下
忽略:1 https://download.docker.com/linux/ubuntu wilma InRelease
错误:3 https://download.docker.com/linux/ubuntu wilma Release
正在读取软件包列表... 完成
E: 仓库 “https://download.docker.com/linux/ubuntu wilma Release” 没有 Release 文件。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
这是因为部分 Ubuntu 衍生发行版使用的并不是 VERSION_CODENAME 而是 UBUNTU_CODENAME,使用 VERSION_CODENAME 会导致添加错误的 Ubuntu 发行版代号
正常在 Ubuntu 下添加软件源的步骤是这么写的
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
这就需要我们在添加软件源时将 VERSION_CODENAME 改成 UBUNTU_CODENAME,上面阿里源同理
阿里源不能直接使用下面的内容
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$UBUNTU_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
最后使用 apt-get update 就不会报错了
