docker--容器和镜像的导入导出及部署

本文详细介绍了Docker中镜像与容器的操作方法,包括镜像与容器的导出、导入流程,以及如何区分使用docker save/load与docker export/import命令。同时,文章解析了在执行docker load命令时可能遇到的错误及其原因,并提供了有效的解决方案。

一.镜像导出 save

1.查看镜像

docker images

2.导出镜像

docker save -o test.tar image_name

docker save image_name > /test.tar

二.容器导出 export

1.导出容器

命令格式为:

docker export [-o|--output[=""]] CONTATINER

 或:

docker export 容器id/name >文件名.tar

例如:

docker export -o test.img test

  test.img : 这里可以导出tar文件 , 也可以导出二进制镜像文件img

  test : 需要导出的容器名, 通过docker ps查看

三.导入压缩包(包括压缩的镜像和容器) : 安装dokcer

1.import

格式:

docker import [-c|--change[=[]]] [-m|--message[=MESSAGE]] file|URL|-[REPOSITORY[:YAG]]

例如:

docker import test.img test

  test : 为镜像名

2.load

格式:

docker load --input /test.tar

区别:

  1. docker save保存的是镜像(image),docker export保存的是容器(container);

  2. docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;

  3. docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。

四.部署镜像

1.启动镜像

docker run -d --name container_test --privileged -it test:latest /usr/sbin/init

2.进入镜像

docker exec -it container_test /bin/bash

五.报错

1.执行命令:docker load --input test.tar

2.报错如下

  open /var/lib/docker/tmp/docker-import-500852078/repositories: no such file or dir

3.原因:

  通过dcker save 导出的镜像就是一个分层的文件系统。Docker镜像实际上就是由这样的一层层文件进行叠加起来的,上层的文件会覆盖下层的同名文件。如果将docker save导出中的各层文件合并到一起,基本就是docker export导入的的内容。由于docker save里面的各层文件会存在很多重复的文件,所以通过save导出的文件比export导出的文件大100多M。

docker load必须要载入的是一个分层文件系统,而test.tar如果是由docker export 导出的,那么test.tar不具有这样的结构,因此无法载入。

而docker import仅仅是将tar包里面的文件复制进来,所以不管tar包里面的文件结构是怎样的,都可以载入进来,所以能够载入test.tar

4.解决:

  cat test.tar | sudo docker import - test/ubuntu:v1.0

5.注意:docker load 只能导入镜像文件(也就是通过save导出的文件)

详解docker save-load export-import区别

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不止于python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值