Docker鏡像的導入導出


導入/導出命令介紹

導入/導出的功能主要用於Docker鏡像的導入導出,用於遷移、備份、升級等場景,或者為隔離且沒有私有鏡像倉庫環境添加docker鏡像。

導入/導出的命令主要有下面幾個:exportimportsaveload,可以分為2組:

  1. save和load
  2. export和import

下面分別看看他們的用法和區別

save和load

命令用法

sian@ -> ~/manifests$ docker save --help

Usage:	docker save [OPTIONS] IMAGE [IMAGE...]

Save one or more images to a tar archive (streamed to STDOUT by default)

Options:
  -o, --output string   Write to a file, instead of STDOUT

  
sian@ -> ~/manifests$ docker load --help

Usage:	docker load [OPTIONS]

Load an image from a tar archive or STDIN

Options:
  -i, --input string   Read from tar archive file, instead of STDIN
  -q, --quiet          Suppress the load output

導出時使用-o或者輸出重定向>將本地鏡像倉庫中的鏡像輸出保存到文件中。

導入時使用-i或者輸入重定向<將鏡像文件導入到本地鏡像倉庫。

實例展示

### 輸出
docker save -o nginx.tar nginx:latest 
或
docker save > nginx.tar nginx:latest

### 輸入
docker load -i nginx.tar
或
docker load < nginx.tar

export和import

命令用法

sian@ -> ~/manifests$ docker import --help

Usage:	docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

Import the contents from a tarball to create a filesystem image

Options:
  -c, --change list      Apply Dockerfile instruction to the created image
  -m, --message string   Set commit message for imported image

sian@ -> ~/manifests$ docker export --help

Usage:	docker export [OPTIONS] CONTAINER

Export a container's filesystem as a tar archive

Options:
  -o, --output string   Write to a file, instead of STDOUT

實例展示

### export
docker export -o nginx-test.tar nginx-test

### import
docker import nginx-test.tar nginx:imp
或
cat nginx-test.tar | docker import - nginx:imp

兩組命令區別

  1. export 命令導出的 tar 文件略小於 save 命令導出的
  2. export 命令是從容器(container)中導出 tar 文件,而 save 命令則是從鏡像(images)中導出
  3. export 導出的文件再 import 回去時,無法保留鏡像所有歷史(即每一層layer信息,不熟悉的可以去看Dockerfile),不能進行回滾操作;而save是依據鏡像來的,所以導入時可以完整保留下每一層layer信息。

最佳實踐

可以依據具體使用場景來選擇命令

  1. 若是只想備份images,使用save、load即可
  2. 若是在啟動容器后,容器內容有變化,需要備份,則使用export、import


免責聲明!

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



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