核心是用docker save在外网打包镜像为tar包,再用docker load在内网加载,全程离线;需确保架构匹配、版本兼容、依赖镜像齐全,并预留足够磁盘空间。

在无外网的服务器上使用 Docker 镜像离线包,核心是“先在外网环境打包,再在内网环境加载”,不依赖实时网络连接。关键不是拉取,而是用 docker save 和 docker load 完成镜像的物理搬运。
确认目标镜像并拉取到有网机器
先在能联网的电脑或服务器(Windows/macOS/Linux 均可)上操作:
- 确保已安装 Docker(如 Docker Desktop 或 Docker Engine),且版本与目标离线服务器尽量一致
- 明确你要部署的镜像名称和标签,例如
gitea/act_runner:latest或bitnami/etcd:3.5.18 - 若本地设备架构与目标服务器不同(比如 M 系列 Mac → x86 服务器),必须指定平台:
docker pull --platform linux/amd64 gitea/act_runner - 执行
docker images确认镜像已成功拉取并存在本地
导出为标准 tar 离线包
使用 docker save 将镜像完整保存为单个 tar 文件(含所有层和元数据):
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
- 命令格式:
docker save -o 镜像名_版本.tar 镜像名:标签 - 示例:
docker save -o act_runner_v0.4.2.tar gitea/act_runner:v0.4.2 - 支持一次保存多个镜像:
docker save -o multi.tar image1:tag1 image2:tag2 - 生成的 tar 文件可直接拷贝(U 盘、内网 SCP、NAS 共享等),无需解压
在离线服务器上加载镜像
将 tar 文件传到目标服务器后,执行加载:
- 确保离线服务器已安装 Docker(版本 ≥ 打包机器的版本)
- 运行:
docker load -i 镜像名_版本.tar - 加载完成后,执行
docker images即可看到镜像已就位,标签、ID 完全保留 - 后续可直接
docker run或配合docker-compose up启动服务
注意事项与常见避坑点
实际操作中容易忽略但影响成败的细节:
-
架构匹配:ARM(
linux/arm64)和 x86(linux/amd64)镜像不可混用,务必提前确认目标服务器 CPU 架构 -
镜像依赖:如果应用依赖多个镜像(如 Nginx + Redis + 自定义业务镜像),需全部
save到同一个 tar 或分别保存后依次load - 磁盘空间:tar 文件大小 ≈ 镜像分层总和,加载后还会额外占用空间(因解压为 layers),建议预留至少 2 倍 tar 大小的空间
-
权限问题:
docker load需要普通用户加入docker用户组,或使用sudo

















