docker容器迁移的解决方案
docker容器迁移保姆式教学
本文使用Xshell工具,以mysql为例
一:容器的导入和导出
1:docker export 正在运行的容器id|容器名 > 文件名 (导出容器的内容作为一个归档文件)
这样一个归档的文件就已经导出了,然后可以通过scp命令将文件迁移到另外一台服务器上并导入
2:cat 文件名 | docker import 镜像名称
传输速度有点慢,等到传输完毕之后,我们从另外一台服务器上的tmp目录下可以看到:
传输成功之后就可以进行容器的导入了
这样就生成了一个新的镜像,注意上面报错提示,生成的镜像名必须是小写
3:注意:
1:容器的导出有一个缺点就是导不出容器的变量和端口号,以及底层的数据,所以进行服务器迁移可能会出现错误,所以可以选择容器镜像迁移技术
2:还有一点要注意的是,使用export命令时,注意是正在运行的容器,如果容器没有运行,就使用docker start 容器id|容器名 启动容器
二:容器镜像迁移技术
场景:有时候我们的容器可能在镜像的基础上做了一些修改,这时候我们希望保存起来封装成一个新的镜像,这样的话下次再这个新的镜像上运行容器时,就不需要再修改配制了
1:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
封装成一个新的镜像之后,可以上传到私服,也可以用过保存和加载容器进服务器迁移
三:保存和加载容器
1:docker save 镜像名|id -o 文件名.tar (将镜像保存为一个tar文件,尽量用镜像名,可以防止虚玄镜像的出现)
2:通过scp技术将tar文件传输到另外一台服务器上
正在传输中 ,等待传输完毕,在另外其一台服务器上查看tmp目录下的文件
此时可以看到文件已经传输完毕
3:docker load -i 文件名.tar (将tar文件加载并且保存为一个镜像)
加载的镜像id和原本的镜像id一致
四:总结:以上提供了几种容器迁移的方法,操作之后你就可以体会到docker的便捷
如果还想了解如何操作阿里云私服push和pull镜像,或者关于容器数据卷迁移问题以及整个docker容器的迁移问题,可以关注我,看我相关的文章
更多推荐
所有评论(0)