docker容器遷移


把容器從一台服務器遷移到另一台服務器,分以下五個步驟

  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的持久化文件拷貝過來即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM