上一篇博文已经教大家如何去部署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>.deb和docker-ce_<version>_<arch>.deb后才能安装docker-ce-cli_<version>_<arch>.deb!!!
若安装过程中提示缺少依赖,说明下载的包不完整或版本不匹配,或者你的安装顺序错误!!!需重新核对第一步中的系统与架构信息,补全对应依赖包后再次执行安装。
安装完成后,检查 Docker 守护进程是否正常运行:
sudo systemctl status docker当输出显示 active (running) 时,即代表离线安装成功。为保障服务器重启后容器服务自动恢复,务必设置开机自启:
sudo systemctl enable docker同时可执行 docker version 与 docker compose version 二次验证引擎及插件是否正常加载。
剩下的东西按照上一篇文章教的来做就好了,像什么镜像源这些,愉快的玩耍吧!