![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SN0M2MwEGM3UGZkFDMlZjZ2ETOlNGMxYWYiZzMzETNm9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
背景
前一段時間,公司開始推行雲桌面,導緻個人使用的 VPS 無法連外網。而内網的 Docker 鏡像服務又不給力,經常拉鏡像失敗。
好在個人電腦是可以正常上外網,是以拉取鏡像也是正常的。是以 VPS 上一些以 Docker 容器跑的服務,就隻好從個人電腦搬運過去。
鏡像導出導入
通常使用
docker save
和
docker load
指令對導出導入鏡像,具體文法和執行個體:
# 導出文法
docker save [OPTIONS] IMAGE [IMAGE...]
# 例子,如果需要跨作業系統,請使用 -o 方式
docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
docker save runoob/ubuntu:v3 > my_ubuntu_v3.tar
# 導入文法
docker load [OPTIONS]
# 例子,如果需要跨作業系統,請使用 -i 方式
docker load -i ubuntu.tar
docker load < ubuntu.tar
容器導出導入
容器的導入導出常使用的是
docker export
和
docker import
指令對,容器導出再導入之後,得到的是鏡像,然後使用通用的指令
docker run
即可運作執行個體。
# 導出文法
docker export [OPTIONS] CONTAINER
# 例子
docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2
# 導入文法
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
# 例子
docker import my_ubuntu_v3.tar runoob/ubuntu:v4
Docker Save 與 Docker Export
-
儲存的是鏡像,docker save
儲存的是容器docker export
-
用來載入鏡像包,docker load
用來載入容器包,但兩者都會恢複為鏡像docker import
-
不能對載入的鏡像重命名,而docker load
可以為鏡像指定新名稱docker import
參考資料
- Docker load and save: “archive/tar: invalid tar header”
- docker save與docker export的差別
- Difference between save and export in Docker