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

一、镜像导出 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导出的文件)

原文地址:https://www.cnblogs.com/jbxie/p/12075296.html

时间: 2024-10-10 16:12:47

容器和镜像的导入导出及部署的相关文章

Docker镜像的导入导出

导入/导出命令介绍 导入/导出的功能主要用于Docker镜像的导入导出,用于迁移.备份.升级等场景,或者为隔离且没有私有镜像仓库环境添加docker镜像. 导入/导出的命令主要有下面几个:export.import.save.load,可以分为2组: save和load export和import 下面分别看看他们的用法和区别 save和load 命令用法 [email protected] -> ~/manifests$ docker save --help Usage: docker sav

Docker 镜像-管理-导入-导出

目录 Docker 镜像基本概念 Docker 镜像加速 Docker 镜像 常用命令 Docker 镜像的创建和导出导入 Docker 镜像基本概念 我们使用的容器都是基于镜像的,镜像是由多层组成的,容器是在镜像上面添加了一个读写层.镜像一般储存在 /var/lib/docker/image/. 多个容器是引用的同一个 镜像,容器不会更改镜像的内容,而是创建一个可写层,并将数据保存在 /var/lib/docker/containers 中. Docker 镜像加速 当我们在使用 Docker

Docker 学习之镜像导入导出及推送阿里云服务器(三)

在前面两节里主要就是记录一些docker的基本的操作,包括搜索镜像,拉取镜像,根据镜像创建容器等等,在这一节主要就是记录Docker对于镜像文件的导入导出,及推送到阿里云再从阿里云获取镜像. 一.镜像文件导入导出 1.1 查看当前已有的镜像文件 docker images 1.2 随意运行一个容器 docker run -d -p 8080:8080 --name tomcat tomcat 1.3 通过容器来的到一个新的镜像 # 根据正在运行的容器创建一个新的镜像docker commit t

docker导入导出

#save/load方式 #通过commit容器生成镜像,save导出镜像,load导入镜像 docker commit CONTAINER REPOSITORY:TAG docker save REPOSITORY:TAG > IMAGE_NAME.tar docker load < IMAGE_NAME.tar #export/import方式 #export的是容器,import的是镜像,import时可以给image起名 docker export CONTAINER > IMA

docker 镜像导入导出

导出(Export) Export命令用于持久化容器(不是镜像).所以,我们就需要通过以下方法得到容器ID: sudo docker ps -a 接着执行导出: sudo docker export <CONTAINER ID> > /home/export.tar 最后的结果是一个2.7MB大小的Tar文件(比使用save命令稍微小些). 保存(Save) Save命令用于持久化镜像(不是容器).所以,我们就需要通过以下方法得到镜像名称: sudo docker images 接着执行

docker images 保存导入导出、容器导入导出

Docker:镜像操作和容器操作 镜像操作 列出镜像: $ sudo docker images REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE hello-world         latest              0a6ba66e537a        4 weeks ago         960 B 获取镜像: docker系统镜像可以从任意一

Docker 镜像的导入和导出

镜像的导入和导出 export 和improt [[email protected]#localhost docker]# docker run -ti ubuntu:update /bin/bash [email protected]d:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp update.txt usr var [[email protected]#localhost

docker导入导出镜像

docker导入导出镜像 导出镜像的命令如下: docker save -o ubuntu_14.04.tar ubuntu:14.04 导入镜像的命令如下: docker load < ubuntu_14.04.tar 注意参数导出镜像时参数-o 原文地址:https://www.cnblogs.com/mrnx2004/p/11691031.html

Docker 之 基于容器的镜像制作

1  概述 镜像包含启动容器所需的文件系统和内容,可以理解为打包的文件,用于创建并启动docker容器. 镜像的生成途径有三个: 1.基于dockerfile实现,镜像制作的程序文件 2.基于容器实现,启动容器后,将新的操作制作为新镜像 3.docker hub automated builds 镜像文件采用分层构建机制,最底层为bootfs,上面为rootfs,rootfs上还可以有多层.位于最下层的镜像文件为父镜像(parent image),最底层为基础镜像(base image,root