docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker本地镜像导出导入

Docker本地镜像的导出导入两种方案介绍

作者:技术农场主

这篇文章主要介绍了Docker本地镜像的导出导入两种方案的相关资料,两种方法分别是export/import和save/load两种方案,文中并对比了它们的差别和应用场景,需要的朋友可以参考下

前言

Docker中的导入和导出,提供两种方案,下面分别介绍。

1. 容器(container)的导入和导出

如果需要导出和导入容器(container),则使用export和import命令。

1)查看本机的容器(container)

通过命令docker ps -a来查询本机所有的容器。

示例如下 :

$ docker ps -a
CONTAINER ID   IMAGE      COMMAND                  CREATED       STATUS       PORTS                                       NAMES
6d2304b6a8e2   registry   "/entrypoint.sh /etc…"   2 hours ago   Up 2 hours   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   registry
$ 

2)导出容器(container)

导出容器(container)命令格式:

docker export <容器ID> > <生成容器文件>.tar

示例如下:

$ docker export 6d2304b6a8e2 > registry_container.tar
$ 
$ ls -la
-rw-rw-r--  1 wrs  wrs  25727488 Oct 24 23:24 registry.tar

3)导入容器(container)

导入容器(container)命令格式:

docker import - <新镜像名称> < <容器文件>.tar

示例如下:

$ docker import - registry-new < registry_container.tar
sha256:b8f4b29755a2fcc3e82e33895e911cb2b151195561f257e6baa8f4caec31612b
$
$ docker images
REPOSITORY     TAG       IMAGE ID       CREATED          SIZE
registry-new   latest    b8f4b29755a2   13 seconds ago   25.2MB
registry       latest    75ef5b734af4   12 months ago    25.4MB

2. 镜像(image)的导入和导出

如果需要导出和导入镜像(image),则使用save和load命令。

1)查看本机的镜像(image)

通过命令docker images来查询本机所有的镜像。

示例如下:

$ docker images
REPOSITORY     TAG       IMAGE ID       CREATED         SIZE
registry-new   latest    b8f4b29755a2   5 minutes ago   25.2MB
registry       latest    75ef5b734af4   12 months ago   25.4MB

2)保存镜像

使用docker save命令根据镜像ID将镜像保存成一个文件。命令格式:

docker save <镜像ID> > <镜像文件>.tar

示例如下:

$ docker save 75ef5b734af4 > registry_image.tar
$ ls -l
total 50576
-rw-rw-r-- 1 wrs  wrs  26008064 Oct 24 23:43 registry_image.tar

还可以将多个镜像打成一个文件。命令格式:

docker save -o <镜像文件>.tar <镜像1名称>:<TAG> <镜像2名称>:<TAG> <镜像3名称>:<TAG>

示例如下:

$ docker images
REPOSITORY     TAG       IMAGE ID       CREATED          SIZE
registry-new   latest    b8f4b29755a2   17 minutes ago   25.2MB
mysql          latest    be960704dfac   9 days ago       602MB
mariadb        latest    4b8711c6c639   7 weeks ago      407MB
registry       latest    75ef5b734af4   12 months ago    25.4MB
$
$ docker save -o multi_images.tar mysql:latest mariadb:latest registry:latest
wrs@wrs-VirtualBox:/tmp$ 
wrs@wrs-VirtualBox:/tmp$ ls -l
total 1083696
-rw------- 1 wrs  wrs  1057908736 Oct 24 23:49 multi_images.tar
-rw-rw-r-- 1 wrs  wrs    26008064 Oct 24 23:43 registry_image.tar
-rw-rw-r-- 1 wrs  wrs    25727488 Oct 24 23:24 registry.tar

3)载入镜像

使用docker load命令将镜像文件加载。命令格式:

docker load < <镜像文件>.tar

示例如下:

$ docker images
REPOSITORY     TAG       IMAGE ID       CREATED          SIZE
registry-new   latest    b8f4b29755a2   26 minutes ago   25.2MB
mariadb        latest    4b8711c6c639   7 weeks ago      407MB
registry       latest    75ef5b734af4   12 months ago    25.4MB
$
$ docker load < mysql_image.tar 
664144bd1f24: Loading layer [==================================================>]  115.7MB/115.7MB
d6b2e74ff5bc: Loading layer [==================================================>]  11.26kB/11.26kB
e4b9aa8d7f77: Loading layer [==================================================>]  2.359MB/2.359MB
351aeade47c3: Loading layer [==================================================>]  16.94MB/16.94MB
ba13a3d5fd83: Loading layer [==================================================>]  6.656kB/6.656kB
a175988b08be: Loading layer [==================================================>]  3.072kB/3.072kB
46eea9ff66e1: Loading layer [==================================================>]  142.3MB/142.3MB
34e3dfece44b: Loading layer [==================================================>]  3.072kB/3.072kB
95debb10d09a: Loading layer [==================================================>]    342MB/342MB
cf0628e5b340: Loading layer [==================================================>]  17.41kB/17.41kB
Loaded image: mysql:latest
$
$ docker images
REPOSITORY     TAG       IMAGE ID       CREATED          SIZE
registry-new   latest    b8f4b29755a2   27 minutes ago   25.2MB
mysql          latest    be960704dfac   9 days ago       602MB
mariadb        latest    4b8711c6c639   7 weeks ago      407MB
registry       latest    75ef5b734af4   12 months ago    25.4MB

3. 两种方案的差别

1)是否包含镜像历史

2)是否可以对镜像重命名

3)是可以将多个镜像/容器打包到一个文件

4)应用场景不同

总结 

到此这篇关于Docker本地镜像的导出导入两种方案的文章就介绍到这了,更多相关Docker本地镜像导出导入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文