将本地docker容器迁移到服务端
2018-07-27 本文已影响111人
zhaoolee
从docker容器生成镜像
docker commit -a "zhaoolee" -m “完成uwsgi的配置” qs zhaoolee-qs:1.0
参数说明:
-a
为作者署名,-m
为本次提交的内容说明,qs
为容器的名称,zhaoolee-qs:1.0
表示新生成的镜像名为zhaoolee-qs
,镜像zhaoolee-qs版本号为1.0
从容器生成镜像的时间可以会比较长, 需要耐心等待
将docker镜像导出为静态文件
docker save zhaoolee-qs:1.0 > qs01.tar
zhaoolee-qs:1.0
为镜像名,qs01.tar
为新生成的静态文件名
通过将scp将静态文件发送到服务端
scp ./qs01.tar root@192.168.214.162:/qs01.tar
./qs01.tar
表示当前本地路径下的静态文件qs01.tar
,root@192.168.214.162
表示以root的身份登录ip为192.168.214.162
服务器,:/qs0.tar
表示qs01.tar将要存储到远程服务器根目录下,文件名保持为qs01.tar
scp远程拷贝是一个非常值得掌握的命令, 简单实用, 也可用与脚本编程
将静态文件还原为镜像, 并导入docker
docker load < qs01.tar
登录192.168.214.162
, 进入根目录下(qs01.tar所在的位置), 运行此命令, 即可将镜像恢复, 并导入docker管理器
从刚刚导入的镜像新建容器
docker run -t -i --name qs01 -p 3000:80 -p 8000:8000 zhaoolee-qs:1.0 /bin/bash
小技巧: 退出当前容器环境但不关闭当前容器ctrl+p+q
- 小结:
利用静态文件进行容器的迁移, 是一件非常简单的事情, 你可以像发布一个软件包一样将自己的docker容器生成的静态文件分发到各类操作系统, docker才是真正的跨平台呀!