Ubuntu 20.04 离线环境部署Docker:从零到一的完整实战与深度排错
在企业级IT基础设施中,生产环境、研发内网或安全隔离区域常常处于严格的网络管控之下,无法直接访问互联网。在这种背景下,为Ubuntu 20.04 LTS这类长期支持版本部署Docker引擎,就成了一场对运维人员综合能力的考验。它远不止是拷贝几个安装包那么简单,更像是一次对系统依赖、版本兼容性、服务配置和安全基线理解的全面检验。如果你正面对一台“与世隔绝”的Ubuntu服务器,手头只有一台能上网的跳板机,那么这份指南将为你铺平道路。我们将绕过那些泛泛而谈的教程,直击离线安装的核心痛点:如何精准获取所有依赖、如何应对五花八门的报错,以及如何构建一个稳定可用的容器运行时环境。
1. 战前准备:理解离线安装的底层逻辑与资源获取
在开始敲命令之前,我们必须先厘清一个关键概念:什么是真正的“离线安装”?对于Ubuntu的APT包管理体系而言,离线安装意味着你需要手动准备好目标软件及其所有递归依赖的.deb安装包。Docker CE(社区版)并非一个孤立的软件,它依赖于containerd作为容器运行时,依赖于docker-ce-cli提供命令行工具,还可能涉及iptables、libseccomp2等系统级组件。
1.1 确定系统架构与版本
首先,在你的离线目标机器上,确认系统架构和确切版本。这一步至关重要,下载错误的架构包会导致安装失败。
# 在目标服务器上执行
lsb_release -a
# 输出应包含:Distributor ID: Ubuntu, Description: Ubuntu 20.04.x LTS
uname -m
# 输出应为:x86_64 或 aarch64(对于ARM架构)
注意:绝大多数企业服务器是
x86_64(即amd64)架构。本文后续内容均以此架构为例。若为ARM架构,需在下载时替换对应的架构标识。
1.2 在有网络的环境中准备离线包
找一台网络通畅、同样为Ubuntu 20.04的系统(虚拟机或临时实例)作为“下载机”。我们将使用apt的下载功能来获取所有必需的包。
方法一:使用apt-offline(推荐,更系统化)
apt-offline是一个专门为离线升级设计的工具,它可以生成一个包含所有依赖关系的签名文件,然后在有网机器上批量下载。
# 在离线目标机上生成需求签名文件
sudo apt-get install apt-offline -y
apt-offline set /tmp/docker-offline.sig --install-packages docker-ce docker-ce-cli containerd.io
将生成的/tmp/docker-offline.sig文件拷贝到下载机。在下载机上:
# 下载所有依赖包到指定目录
apt-offline get /tmp/docker-offline.sig --bundle /tmp/docker-offline-bundle.zip --download-dir /tmp/docker-debs
解压bundle或将/tmp/docker-debs目录下的所有.deb文件打包,它们就是完整的离线安装包集合。
方法二:使用apt download手动下载核心包及依赖
如果你更倾向于手动控制,可以逐个下载核心包,并让apt帮你解析依赖。
# 在下载机上更新源并下载
sudo apt update
apt download docker-ce docker-ce-cli containerd.io
执行上述命令后,当前目录会下载这三个核心包,但它们可能不包含全部的底层依赖。一个更稳妥的方法是使用apt-rdepends工具列出所有递归依赖并下载:
2446



被折叠的 条评论
为什么被折叠?



