如何导出docker-compose应用的所有镜像并在其他机器上复现运行
Docker Compose多镜像应用迁移操作指南
操作步骤
- 导出本地所有相关镜像
可直接将3个镜像打包为单个压缩包,方便传输:# 不压缩打包 docker save -o myapp-all-images.tar docker-mice-tracking-app_server docker-mice-tracking-app_client mongo # 如需更高压缩比,可执行gzip压缩 docker save docker-mice-tracking-app_server docker-mice-tracking-app_client mongo | gzip > myapp-all-images.tar.gz - 迁移核心文件到目标机器
需要发送两类文件到目标机器:- 上一步导出的镜像压缩包
- 你本机执行
docker-compose up的整个项目目录(需包含完整的docker-compose.yml文件、以及配置中用到的挂载文件、静态资源等)
- 目标机器导入镜像
目标机器需提前安装好docker和docker-compose环境,上传文件完成后执行导入:
导入完成后可执行# 导入未压缩的tar包 docker load -i myapp-all-images.tar # 导入gzip压缩包 docker load < myapp-all-images.tar.gzdocker images核对三个镜像是否存在、名称标签是否正确。 - 启动应用
进入传输到目标机的项目目录,和你本机操作一致,直接执行启动命令即可:# 前台启动查看日志 docker-compose up # 后台常驻启动 docker-compose up -d
补充说明
如果你的MongoDB服务配置了持久化数据卷,需要额外迁移数据:
- 原机器备份数据:
docker run --rm --volumes-from 你的MongoDB容器名 -v $(pwd):/backup busybox tar cvf /backup/mongo-data.tar /data/db - 目标机先创建对应数据卷,再恢复数据:
docker run --rm -v 你docker-compose中配置的MongoDB数据卷名:/data/db -v $(pwd):/backup busybox tar xvf /backup/mongo-data.tar
内容的提问来源于stack exchange,提问作者ceradini
相关产品推荐
相关产品推荐

