QxMO的空间

docker的离线部署教程

前言:

上一篇博文已经教大家如何去部署docker了,可那都是基于网络的,在很多实际情况,我们可能会由于网络问题,导致下载缓慢或无法下载,比如在内网环境、安全隔离区或网络受限的服务器上,无法直接使用 apt install docker 在线安装容器引擎。那么这一篇博文就教大家如何在这种环境下离线部署docker

注意!!!

离线安装不等于不需要网络!我们任然需要一台有网络的外部机器来获取网络资源,有需要可以准备一个U盘

本期教程基于Ubuntu,debian系列操作方法相同,redhat和arch可参考


一、 清理冲突软件包

在安装官方 Docker CE 之前,务必卸载系统中可能存在的旧版或冲突容器组件,避免依赖混乱导致安装失败:

sudo apt update && sudo apt upgrade -y
sudo apt remove $(dpkg --get-selections | grep -E 'docker.io|docker-compose|podman-docker|containerd|runc' | cut -f1)

⚠️ 注意: 此步骤会移除所有已识别的容器相关包,若当前服务器已有运行中的容器服务,请提前备份数据并确认业务窗口期后再执行。


二、 准备离线安装包

没错,虽然说是离线,但我们任然需要依靠互联网获取我们所需要的东西

在有网络的机器上访问 Docker 官方下载页,根据目标服务器的 系统版本(dists)CPU 架构(arch) 下载以下 5 个 .deb 文件:

  • containerd.io_<version>_<arch>.deb

  • docker-ce_<version>_<arch>.deb

  • docker-ce-cli_<version>_<arch>.deb

  • docker-buildx-plugin_<version>_<arch>.deb

  • docker-compose-plugin_<version>_<arch>.deb

这些东西很眼熟对吧,就是上一篇文章中apt install的东西,只不过上次是通过机器直接联网下载顺带安装,这次我们是在有网络的地方下载安装包,用U盘这种物理方法,或者内网传输,把安装包移到服务器上面离线安装

💡 关键提示:

  • 所有包的版本号必须保持一致,避免因版本不匹配引发依赖错误。

  • 架构需与目标服务器严格对应(如 amd64 / arm64),可通过 uname -m 在目标机确认。

  • 建议将 5 个文件统一存放至独立目录,便于后续传输与管理。


三、 传输并批量安装

将上述文件通过 U 盘、SCP 或内网文件服务器传入目标服务器的同一目录,执行批量安装命令:

sudo dpkg -i ./containerd.io_*.deb \
             ./docker-ce_*.deb \
             ./docker-ce-cli_*.deb \
             ./docker-buildx-plugin_*.deb \
             ./docker-compose-plugin_*.deb

你可以一条一条dpkg -i ./xxxxxx.deb的执行,也可以一整片直接复制进去执行。

需要注意的是!!!这些东西都是有先后顺序的!!!一定是要先安装了containerd.io_<version>_<arch>.debdocker-ce_<version>_<arch>.deb后才能安装docker-ce-cli_<version>_<arch>.deb!!!

若安装过程中提示缺少依赖,说明下载的包不完整或版本不匹配,或者你的安装顺序错误!!!需重新核对第一步中的系统与架构信息,补全对应依赖包后再次执行安装。


四、 验证服务状态与配置自启

安装完成后,检查 Docker 守护进程是否正常运行:

sudo systemctl status docker

当输出显示 active (running) 时,即代表离线安装成功。为保障服务器重启后容器服务自动恢复,务必设置开机自启:

sudo systemctl enable docker

同时可执行 docker versiondocker compose version 二次验证引擎及插件是否正常加载。


五、 离线安装总结

环节

关键要点

前置清理

彻底卸载冲突包,避免新旧组件共存引发异常

包准备

精确匹配系统版本与 CPU 架构,5 个核心包缺一不可

安装执行

使用 dpkg -i 批量安装,避免逐个安装导致的依赖中断

服务验证

安装后立即检查服务状态,并配置开机自启

归档管理

将验证通过的离线包组合归档,作为后续同类环境的标准化安装基线

剩下的东西按照上一篇文章教的来做就好了,像什么镜像源这些,愉快的玩耍吧!