在 Ubuntu 22.04 LTS 上离线安装 Docker
一、准备工作
1.1 获取目标系统信息
在目标 Ubuntu 22.04 LTS 系统上,先执行以下命令确认架构信息:
uname -m
lsb_release -a
一般返回如下信息:
1.2 需要一台可联网的机器
准备一台可以连接互联网机器,用于下载 Docker 安装包。
二、在联网机器上下载 Docker 安装包
2.1 进入官方软件源
打开浏览器,访问 Docker 官方 Ubuntu 软件源:
👉 https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/
说明:
jammy
是 Ubuntu 22.04 的代号。amd64
是常见的 64 位架构。
2.2 下载必要的 .deb
包
以下是最小化安装 Docker 所需的 .deb
包(建议按最新版本下载):
包名 | 功能说明 |
---|---|
containerd.io_xxx.deb |
Docker 的容器运行时 |
docker-ce-cli_xxx.deb |
Docker 命令行客户端 |
docker-ce_xxx.deb |
Docker 引擎核心 |
docker-buildx-plugin_xxx.deb |
BuildKit 构建支持(可选) |
docker-compose-plugin_xxx.deb |
Compose v2 支持(可选) |
如果使用 wget
批量下载示例(请将 URL 替换成最新版本):
wget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/containerd.io_1.7.27-1_amd64.deb
wget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-ce-cli_28.1.1-1~ubuntu.22.04~jammy_amd64.deb
wget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-ce_28.1.1-1~ubuntu.22.04~jammy_amd64.deb
wget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-buildx-plugin_0.23.0-1~ubuntu.22.04~jammy_amd64.deb
wget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-compose-plugin_2.35.1-1~ubuntu.22.04~jammy_amd64.deb
2.3 打包传输
将所有 .deb
文件打包为压缩包:
tar -czvf docker-offline-packages.tar.gz *.deb
使用 scp
或 U 盘等方式将文件传输到目标服务器。
三、在目标服务器上离线安装
3.1 解压安装包
tar -xzvf docker-offline-packages.tar.gz
cd docker-offline-packages
3.2 安装所有依赖
执行以下命令批量安装所有 .deb
包:
sudo dpkg -i *.deb
如果遇到依赖错误,可运行以下命令自动修复:
sudo apt-get install -f
四、验证 Docker 安装
4.1 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
4.2 验证 Docker 是否正常运行
docker version
docker info
输出 Docker 版本等信息即表示安装成功。
五、(可选)配置镜像加速器
编辑文件 /etc/docker/daemon.json
:
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me",
"https://mirror.iscas.ac.cn"
]
}
EOF
如果有其他的镜像加速器可自行添加进去,保存后重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker