什么是 Docker Compose 离线部署?
在某些生产环境或内网环境中,服务器无法访问外网,但又需要部署基于 Docker Compose 的多容器应用。 此时,我们需要提前在有网络的机器上准备好所有依赖的镜像和配置文件,再通过物理或内网方式传输到目标机器进行部署。
离线部署基本流程
- 在联网机器上拉取所需 Docker 镜像
- 使用
docker save将镜像导出为 tar 文件 - 将 tar 文件与
docker-compose.yml文件一起拷贝到目标机器 - 在目标机器上使用
docker load加载镜像 - 运行
docker-compose up -d启动服务
操作示例
1. 导出镜像
# 拉取镜像(示例)
docker pull nginx:latest
docker pull redis:alpine
# 打包多个镜像
docker save -o myapp-images.tar nginx:latest redis:alpine
2. 加载镜像(目标机器)
docker load -i myapp-images.tar
3. 编写 docker-compose.yml(确保不包含 pull 策略)
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
cache:
image: redis:alpine
ports:
- "6379:6379"
注意事项
- 确保目标机器的 Docker 和 Docker Compose 版本兼容
- 避免在
docker-compose.yml中使用build指令(除非你也携带构建上下文) - 建议使用固定版本标签(如
nginx:1.25),而非latest - 可配合
docker images --digests校验镜像一致性