容器与镜像的导入导出区别
一、export与save:
- export用到导出容器,save用于导出镜像,都是都是导出tar文件。
- export一次只能导出一个容器,save一次可以导出多个镜像。
- export将当前容器状态导出到文件,类似快照,不包含元数据和历史信息,体积更小;save 导出的镜像包含镜像元数据和历史信息。
比较export和save导出tar包的内容:
| $ docker save -o ubuntu-img.tar ubuntu:latest
$ docker export -o ubuntu-container.tar myubuntu
|
查看save导出的ubuntu-img.tar内容
| $ tar -tf ubuntu-img.tar
15c50011d28601e04214355466ea8b179c4566bbd357c098376a534139efb5a9/
15c50011d28601e04214355466ea8b179c4566bbd357c098376a534139efb5a9/VERSION
15c50011d28601e04214355466ea8b179c4566bbd357c098376a534139efb5a9/json
15c50011d28601e04214355466ea8b179c4566bbd357c098376a534139efb5a9/layer.tar
e4c58958181a5925816faa528ce959e487632f4cfd192f8132f71b32df2744b4.json
manifest.json
repositories
|
查看export导出的ubuntu-container.tar内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | $ tar -tf ubuntu-container.tar --exclude='*/*'
.dockerenv
bin
boot/
dev/
etc/
home/
lib
lib32
lib64
libx32
media/
mnt/
opt/
proc/
root/
run/
sbin
srv/
sys/
tmp/
usr/
var/
|
二、import与load
- import导入的是容器包,load导入的是镜像包,两者都会恢复为镜像
- import可以为镜像指定新名称,load不能对导入镜像重命名
- import会丢失历史,恢复后中包含一层,load不会丢失历史和层
三、commit与export+import
- export+import与commit都可以将容器转为镜像
- export+import恢复的镜像仅包含一层,commit包含原镜像所有层