博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

docker容器迁移

Posted on 2020-02-16 17:34  sunnynic  阅读(2738)  评论(0编辑  收藏  举报

把容器从一台服务器迁移到另一台服务器,分以下五个步骤

  1. 容器打包成镜像     #  docker commit -m "" -a "" [CONTAINER ID] [新的镜像名] ,其中-m和-a是可选参数,意思分别是描述和作者
  2. 导出镜像       #    docker save -o [新的镜像名.tar] [新的镜像名]
  3. 拷贝镜像到目标服务器     #    scp src dst
  4. 导入镜像     #    sudo docker load -i [新的镜像名.tar]  
  5. 运行容器    #    docker run

以nginx-server容器为例,从服务器A迁移到服务器B,服务器A上访问如下

根据上述迁移步骤,执行命令如下

打包及导出镜像

[root@Server1 ~]# docker commit nginx-server nginx-server_0216
sha256:272b562a99186c7c72453743014dc28aa9051a5f547ca0b502bbb631480a9f1f
[root@Server1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx-server_0216 latest 272b562a9918 4 seconds ago 127MB

[root@Server1 ~]# docker save -o /tmp/nginx-server_0216.tar nginx-server_0216
[root@Server1 ~]# ls -lh /tmp/nginx-server_0216.tar
-rw------- 1 root root 125M Feb 16 16:06 /tmp/nginx-server_0216.tar

拷贝镜像到服务器B后,导入镜像及运行容器

[root@jly-php ~]# docker load -i /root/nginx-server_0216.tar
488dfecc21b1: Loading layer [==================================================>] 72.48MB/72.48MB
b4a29beac87c: Loading layer [==================================================>] 58.04MB/58.04MB
22439467ad99: Loading layer [==================================================>] 3.584kB/3.584kB
11a6fc6ceb9c: Loading layer [==================================================>] 12.8kB/12.8kB
Loaded image: nginx-server_0216:latest
[root@jly-php ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx-server_0216 latest 272b562a9918 About an hour ago 127MB
[root@jly-php ~]# docker run --name nginx-server_0216 -d -p 8090:80   -v /data/nginx:/etc/nginx -v /data/www:/usr/share/nginx nginx-server_0216

容器运行起来后,把之前容器所在服务器A的持久化文件拷贝过来即可。