目錄
- 背景需求
- 一、docker鏡像打包
- 1.1 首先下載鏡像docker pull nginx:stable-alpine
- 1.2 打包生成docker鏡像
- 二、docker鏡像導入
- 2.1 上傳tar包到服務器B
- 2.2 導入docker鏡像到服務器B
- 總結
背景需求
有個需求:需要將一臺服務器A上的docker鏡像遷移到另一臺服務器B上,并可以在服務器B上,通過命令docker images
可以查看到對應的鏡像(這個鏡像一般是你自己打包的鏡像,不是https://hub.docker.com上的,否則直接下載即可也不用這么麻煩了,當然你沒有網,或者包很大,網很差,用這個方法也很Nice)。
下面,我們以一個docker pull nginx:stable-alpine
的鏡像為例,進行一次遷移:
一、docker鏡像打包
1.1 首先下載鏡像docker pull nginx:stable-alpine
在服務器A上操作
[root@nb001 ~]# docker pull nginx:stable-alpine stable-alpine: Pulling from library/nginx 213ec9aee27d: Pull complete 864534705ce1: Pull complete fe2c9e7418f8: Pull complete f08ef11b2dfc: Pull complete 36f0053ae033: Pull complete e47e25891bf2: Pull complete Digest: sha256:5ba534070ae1e5e83d52141b11ddced689b476c0001e7205f50979dc0cbdde3d Status: Downloaded newer image for nginx:stable-alpine docker.io/library/nginx:stable-alpine [root@nb001 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx stable-alpine ec84f916d1ec 4 days ago 23.6MB
1.2 打包生成docker鏡像
執行鏡像打包命令:docker save nginx:stable-alpine > /data/softs/nginx-stable-alpine.tar
在服務器A上操作
命令詳解:
docker save [OPTIONS] IMAGE [IMAGE…]
docker save 鏡像名稱:鏡像tag > 打包生成的鏡像tar包的絕對路徑
[root@nb001 softs]# docker save nginx:stable-alpine > /data/softs/nginx-stable-alpine.tar [root@nb001 softs]# ls -lrth | grep nginx-stable -rw-r--r-- 1 root root 24M Oct 24 13:36 nginx-stable-alpine.tar
最后,將包通過scp命令遷移到服務器B,或者下載在上傳也ok。
番外:
scp nginx-stable-alpine.tar root@服務器IP:/data/tools
回車然后輸入yes,密碼即可傳輸。
二、docker鏡像導入
在服務器B上操作
2.1 上傳tar包到服務器B
將在服務器A上打包好的tar包上傳到服務器B的指定位置。我這邊是放到了/data/tools
下,
如下,發現已經上傳
[root@nb001 softs]# docker save nginx:stable-alpine > /data/softs/nginx-stable-alpine.tar [root@nb001 softs]# ls -lrth | grep nginx-stable -rw-r--r-- 1 root root 24M Oct 24 13:36 nginx-stable-alpine.tar
2.2 導入docker鏡像到服務器B
首先在服務器B上查看是沒有nginx相關鏡像的,執行docker images | grep nginx
查看
[root@nb002 tools]# docker images | grep nginx [root@nb002 tools]#
執行鏡像導入:docker load < /data/tools/nginx-stable-alpine.tar
[root@nb002 tools]# docker load < /data/tools/nginx-stable-alpine.tar 994393dc58e7: Loading layer [==================================================>] 5.827MB/5.827MB 5242cd795028: Loading layer [==================================================>] 19.22MB/19.22MB 286ccd57a256: Loading layer [==================================================>] 3.584kB/3.584kB 8d14dc56a724: Loading layer [==================================================>] 4.608kB/4.608kB 7c4dfec5a9f2: Loading layer [==================================================>] 3.584kB/3.584kB b85443563c06: Loading layer [==================================================>] 7.168kB/7.168kB Loaded image: nginx:stable-alpine [root@nb002 tools]# docker images | grep nginx nginx stable-alpine ec84f916d1ec 4 days ago 23.6MB [root@nb002 tools]#
如上,發現在服務器B上已經成功導入了nginx:stable-alpine
鏡像