docker tar 鏡像 容器相互轉換


學習 使用 docker 也有一段時間了 但是在基礎去上面有些東西總是容易忘記

整理之前看到的文檔,看到一個問題 怎么將一個容器導出成為tar,我本以為是首先 保存成為鏡像 再 save 進行保存

查找資料之后發現 並不是這樣的

我畫一張命令圖

這里使用centos_latest.tar

tar > images

docker load -i centos_latest.tar   
docker tag pid centos:latest

為什么是load?

因為當鏡像是save保存tar包就使用load引出

為什么使用tag?

因為load導入的鏡像是沒有名稱的,需要使用tag加標簽 才可以使用

images > container

docker run -dit centos:latest /bin/bash   //示例啟動代碼

這里容器就在運行了 docker ps,就能看到

container > images

docker commit pid new_centos:latest /bin/bash

生成鏡像有兩種方式 Dockerfile 以及commit

至於這兩種方式有什么不同 下次再寫吧

images> tar

docker save new_centos:latest > new_centos.tar

一定要加 > 不然會報錯

container > tar

docker export pid > centos_container.tar

export 將容器直接導出成為tar包

tar > images

docker import centos_container.tar centos:latest

docker save和docker export的區別

總結一下docker save和docker export的區別:

  1. docker save保存的是鏡像(image),docker export保存的是容器(container);
  2. docker load用來載入鏡像包,docker import用來載入容器包,但兩者都會恢復為鏡像;
  3. docker load不能對載入的鏡像重命名,而docker import可以為鏡像指定新名稱。


免責聲明!

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



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