Docker commit 容器備份示範

有些時候需要將 docker 容器(container)當前的狀態儲存起來,該怎麼做呢? docker commit 指令就是將容器當前狀態儲存為新的 image 用的,不過需要注意的是容器的 volumes 是不會被備份。

依照當前容器產生 image

    
docker commit docker_name new_image_name:tag
    

參數:
  • -p : 處理期間是否要暫停容器,後面需要加上 true 或 false,預設為 true
  • -m : commit 訊息
  • -a : 作者
  • new_image_name:tag : 新的 image 名稱和 tag,tag 可以省略
範例:
    
docker commit -a ruyut -m test_message mysql new_mysql:latest
    

透過 docker image 產生 tar 檔案

建立好 image 後,除了上傳到 docker hub 以外,也可以將 docker image 儲存為 tar 檔案,這就可以很方便的移動 image 了
    
docker save my_image > my_image.tar
    

將 tar 檔案還原為 docker image

把 tar 檔案移動到目標裝置後就可以使用下面的語法將 image 還原:
    
docker load < my_image.tar
    



參考資料:
Ruyut - 所有常用的 Docker 基礎 語法 整理
docker docs - docker commit
docker docs - docker save
docker docs - docker load

留言