本文实现,将你的docker保存成文件,切换到其他server上一键启动
方法1:镜像的保存(save)和加载(load)
在保存镜像前,要先确保你的镜像是最新版本,且符合你的要求
首先,将容器打包成镜像,执行docker commit 39eaa5aa7332 nginx:v2
ok,现在来保存镜像吧
保存镜像 docker save > save_file_name nginx:v2
或docker save -o save_file_name nginx:v2
其中 -o 和 > 表示输出到文件,save_file_name 为目标文件,nginx:v2是源镜像名(name:tag)
注:save会保存该镜像的所有历史记录
把保存好的镜像文件发送到指定的server上来恢复
加载镜像 docker load < save_file_name
或 docker load -i save_file_name
其中 -i 和 < 表示从文件输入。会成功导入镜像及相关元数据,包括tag信息。
方法2:容器的导出(export)和导入(import)
前面说到,方法1,是将容器先提交保存成最新的镜像,然后再打包镜像。当然也可以直接导出当前容器
导出当前正在运行的容器docker export nginx-test > nginx_export_file_name
或docker export -o nginx-test nginx_export_file_name
docker export “容器ID或容器name” > “导出的文件name”
同样,把导出后的文件发送到指定server上进行导入操作
导入容器docker import nginx_export_file_name nginx:latest
当然,导入时候可以指定参数,如设置工作目录和启动脚本docker import -c 'WORKDIR "/home"' -c 'CMD ["bash","startup.sh"]' nginx_export_file_name nginx:latest
这样,当把镜像run起来,容器启动的时候会自动执行指定的脚本文件,容器里面应用也会自动启动。