Docker 是一個 Open source 的容器化平台,可以輕鬆地打包、部署和運行你的應用程式。
Docker image (映像檔) 是該平台重要元件,它是一個輕量級、可執行、可快速打包的軟體包,不只是應用程式所需的執行檔,還包含運作環境和環境設定。
因為一些特殊需求,需要離線安裝 (offline install) 或者是有些時候你可能沒有一個可以使用私有 docker registry,
你可能會需要這些指令,因有常常忘記故筆記一下。
docker image 匯出
首先,先列出有什麼 images
$ docker image ls
這指令會列出所有你曾經用過的 images
找到你要的 images
然後用 docker save
來匯出 image
$ docker save myimage:latest | gzip > myimage_latest.tar.gz
docker image 匯入
在別台機器,使用 docker load
來匯入 image
docker load --input myimage_latest.tar.gz
備註:官方文件有說 docker load
除了可以直接輸入
*.tar
打包檔案(未壓縮)*.tar.gz
壓縮檔案( gzip 壓縮格式)*.tar.bz2
壓縮檔案( bzip2 壓縮格式)*.tar.xz
壓縮檔案( xz 壓縮格式)
當然還是建議放在類似 Docker hub 這樣的 registry 比較好,
如果 docker hub 私有 registry 方案不符合需求,
三大雲端也有提供對應的服務,
有地端 (on-premise) 伺服器自建 docker registry 的方式
不過這個就是另外一個故事了
另外, Kubernetes (k8s) 就非常不建議用匯出匯入這種方式來做,
因為它是叢集自動部署的,你不知道它每次會部署在哪一台機器(除非你有特別指定),
如果你要做類似這樣匯入匯出,你需要在每一個 Node 都做匯出匯入,曠日費時,
建議還是架一個 docker registry 比較理想。