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

摘要:
Docker图像实际上是由这些文件层叠加而成的。上层的文件将覆盖具有相同名称的下层文件。由于dockersave的每个层中都有许多重复的文件,因此通过save导出的文件比通过导出导出的文件大100 M以上。Dockerload必须加载分层文件系统。如果test.tar是通过dockerexport导出的,则test.tar没有这样的结构,因此无法加载。Dockerimport只复制tar包中的文件,因此无论tar包中文件结构如何,都可以加载它,因此test.tar4。解决方案:斤。tar|sudodockerimporttest/ubuntu:v1.05。注意:dockerload只能导入图像文件

一、镜像导出 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查看

三、导入压缩包(包括压缩的镜像和容器)

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导出的文件)

免责声明:文章转载自《容器和镜像的导入导出及部署》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇02_编程规约——集合处理php mysql jquery ajax 查询数据库三级联动下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[Linux之旅一] .NET Core 2.2部署到Docker中

第一步,使用VS2017或者VS2019创建.NET Core 2.2或3.1的项目,如下图: 在创建项目的时候记得勾选Docker支持,这样会自动创建Dockerfile文件,这个文件用于构建Docker镜像;(补充:镜像运行在容器中) 第二步,编辑Dockerfile文件,本人初学不便讲解它的用法,本人按照以下方式进行编辑: FROM microso...

NVidia-Docker2安装与常用命令

前提条件:配置apt国内镜像源1.备份sources.list  sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2.修改sources.list  sudo gedit /etc/apt/sources.list3.替换云镜像阿里  deb http://mirrors.aliyun.com/...

【docker】将Java jar文件生成镜像、上传镜像并生成镜像压缩文件

概述 将Springboot的web服务打包成Jar包后,自动化脚本将jar打包成镜像、上传镜像、并生成镜像的压缩文件; Dockerfile FROM 10.254.9.21/library/oraclejdk:0.0.1 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/loca...

Docker 制作Nginx镜像

参考文章:https://www.jianshu.com/p/dc4cd0547d1e     镜像的制作方式有两种,一种是下载别人的镜像之后再制作成自己的镜像,一种是从头开始制作自己的镜像 第一种,下载别人的镜像来修改。 安全起见下载官方的centos系统镜像,在该系统内安装nginx之后,在封装成镜像 下载centos系统镜像 docker pu...

k8s v1.19.1 修改系统镜像地址过程记录

1.系统镜像列表 k8s.gcr.io/kube-apiserver:v1.19.1 k8s.gcr.io/kube-scheduler:v1.19.1 k8s.gcr.io/kube-controller-manager:v1.19.1 k8s.gcr.io/kube-proxy:v1.19.1 k8s.gcr.io/pause:3.2 k8s.gcr....

Spring源码阅读-IoC容器解析

目录 Spring IoC容器 ApplicationContext设计解析 BeanFactory ListableBeanFactory HierarchicalBeanFactory MessageSource ApplicationEventPublisher EnvironmentCapable ResourceLoader和Resour...