學習 使用 docker 也有一段時間了 但是在基礎去上面有些東西總是容易忘記 整理之前看到的文檔,看到一個問題 怎麼將一個容器導出成為tar,我本以為是首先 保存成為鏡像 再 save 進行保存 查找資料之後發現 並不是這樣的 我畫一張命令圖 這裡使用centos_latest.tar tar i ...
學習 使用 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的區別:
- docker save保存的是鏡像(image),docker export保存的是容器(container);
- docker load用來載入鏡像包,docker import用來載入容器包,但兩者都會恢復為鏡像;
- docker load不能對載入的鏡像重命名,而docker import可以為鏡像指定新名稱。