Docker images导出和导入操作

之前已配置好基础镜像,其他地方也需要用到这些镜像时怎么办呢?

答案:镜像的导入和导出功能。

1、镜像的保存

[root@wxtest1607 ~]# docker images
REPOSITORY        TAG         IMAGE ID      CREATED       SIZE
tomcat8          3.0         90457edaf6ff    6 hours ago     1.036 GB
[root@wxtest1607 lixr]# docker save 9045 > tomcat8-apr.tar
[root@wxtest1607 lixr]# ls -lh
总用量 1.2G
-rw-r--r-- 1 root root 1005M 8月 24 17:42 tomcat8-apr.tar

2、镜像的导入

当前缺一台CentOS7服务器,实践方式变成,先删除image,然后再导入,折腾呀!

[root@wxtest1607 lixr]# docker images
REPOSITORY        TAG         IMAGE ID      CREATED       SIZE
tomcat8          3.0         90457edaf6ff    7 hours ago     1.036 GB
[root@wxtest1607 lixr]# docker rmi 9045
Untagged: tomcat8:3.0
Deleted: sha256:90457edaf6ff4ce328dd8a3131789c66e6bd89e1ce40096b89dd49d6e9d62bc8
Deleted: sha256:00df1d61992f2d87e7149dffa7afa5907df3296f5775c53e3ee731972e253600
[root@wxtest1607 lixr]# docker images
REPOSITORY        TAG         IMAGE ID      CREATED       SIZE
[root@wxtest1607 lixr]# docker load < tomcat8-apr.tar
60685807648a: Loading layer [==================================================>] 442.7 MB/442.7 MB
[root@wxtest1607 lixr]# yer [>                         ] 527.7 kB/442.7 MB
[root@wxtest1607 lixr]# docker images
REPOSITORY        TAG         IMAGE ID      CREATED       SIZE
<none>          <none>       90457edaf6ff    7 hours ago     1.036 GB
[root@wxtest1607 lixr]# docker tag 9045 tomcat8-apr:3.0
[root@wxtest1607 lixr]#
[root@wxtest1607 lixr]# docker images
REPOSITORY        TAG         IMAGE ID      CREATED       SIZE
tomcat8-apr        3.0         90457edaf6ff    7 hours ago     1.036 GB

3、容器的导出

[root@wxtest1607 lixr]# docker ps
CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS                NAMES
b91d9ad83efa    9045        "/bin/bash"     18 seconds ago   Up 15 seconds                      trusting_colden
f680b58163ab    aa79        "/bin/bash"     8 hours ago     Up 8 hours                       stupefied_mayer
4db6aa9b8278    4052        "mysqld_safe"    21 hours ago    Up 21 hours     8080/tcp, 0.0.0.0:53307->3306/tcp  nostalgic_leavitt
7bcfe52af7a0    599d        "mysqld_safe"    21 hours ago    Up 21 hours     8080/tcp, 0.0.0.0:53306->3306/tcp  sleepy_hodgkin
[root@wxtest1607 lixr]#
[root@wxtest1607 lixr]#
[root@wxtest1607 lixr]# docker export b91d9ad83efa > tomcat80824.tar
[root@wxtest1607 lixr]# ls -lh
总用量 2.1G
-rw-r--r-- 1 root root  943M 8月 24 18:37 tomcat80824.tar
-rw-r--r-- 1 root root 1005M 8月 24 17:42 tomcat8-apr.tar

b91d9ad83efa 是 镜像90457edaf6ff 启动后的容器。

镜像导出的文件比容器导出文件大哦。

4、容器的导入

[root@wxtest1607 lixr]# docker import tomcat80824.tar
sha256:880fc96a6bb6abdfa949a56d40ef76f32f086fa11024ddcfb4e4e8b22041d5f2
[root@wxtest1607 lixr]# docker images
REPOSITORY        TAG         IMAGE ID      CREATED       SIZE
<none>          <none>       880fc96a6bb6    6 seconds ago    971.9 MB
[root@wxtest1607 lixr]# docker tag 880f tomcat80824:1.0
[root@wxtest1607 lixr]# docker images
REPOSITORY        TAG         IMAGE ID      CREATED       SIZE
tomcat80824        1.0         880fc96a6bb6    About a minute ago  971.9 MB
tomcat8-apr        3.0         90457edaf6ff    8 hours ago     1.036 GB

5、镜像和容器 导出和导入的区别

镜像导入和容器导入的区别:

1)容器导入 是将当前容器 变成一个新的镜像

2)镜像导入 是复制的过程

save 和 export区别:

1)save 保存镜像所有的信息-包含历史

2)export 只导出当前的信息

[root@wxtest1607 lixr]# docker history 880fc96a6bb6
IMAGE        CREATED       CREATED BY     SIZE        COMMENT
880fc96a6bb6    12 minutes ago             971.9 MB      Imported from -
[root@wxtest1607 lixr]# docker history 90457edaf6ff
IMAGE        CREATED       CREATED BY                   SIZE        COMMENT
90457edaf6ff    8 hours ago     /bin/bash                    434.4 MB
<missing>      23 hours ago    /bin/bash                    406.5 MB
<missing>      7 weeks ago     /bin/sh -c #(nop) CMD ["/bin/bash"]       0 B
<missing>      7 weeks ago     /bin/sh -c #(nop) LABEL license=GPLv2      0 B
<missing>      7 weeks ago     /bin/sh -c #(nop) LABEL vendor=CentOS      0 B
<missing>      7 weeks ago     /bin/sh -c #(nop) LABEL name=CentOS Base Imag  0 B
<missing>      7 weeks ago     /bin/sh -c #(nop) ADD file:b3bdbca0669a03490e  194.6 MB
<missing>      7 weeks ago     /bin/sh -c #(nop) MAINTAINER The CentOS Proje  0 B 

补充:docker images 详解

docker images 用于查看本地已下载的镜像

[root@localhost ~]$ docker images
REPOSITORY     TAG         IMAGE ID      CREATED       SIZE
centos       latest       1e1148e4cc2c    2 weeks ago     202MB
ubuntu       latest       93fd78260bd1    5 weeks ago     86.2MB
REPOSITORY  # 镜像仓库
TAG      # 镜像标签
IMAGE ID   # 镜像ID
CREATED    # 镜像创建时间
SIZE     # 镜像大小

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 解决docker容器重启之后/etc下某些配置文件被重置的问题

    1. /etc/hosts, /etc/resolv.conf和/etc/hostname容器中的这三个文件不存在于镜像,而是存在于于/var/lib/docker/containers/,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部. 因此,如果在容器中修改这些文件的话,修改部分不会存在于容器的top layer,而是直接写入这三个物理文件中. 2.为什么重启后修改内容不存在了? 原因是:每次Docker在启动容器的时候,通过重新构建新的/etc/hosts文件,这又是为什么

  • docker 查看进程, 内存, cup消耗的情况

    docker 查看进程, 内存,cup 消耗 启动 docker 容器,可以通过 docker inspect 查看进程号 # docker inspect -f '{{.State.Pid}}' 通过 docker stats 查看内存,cpu 使用 docker stats docker stats --no-stream docker stats container-name docker stats $(docker ps --format={{.Names}}) docker stat

  • docker 查看jvm内存占用方式

    一.进入docker容器的宿主机,查看运行指定镜像的容器id(结果的第一列): docker ps | grep myImageName(或docker ps | grep java) 二.进入容器内部: docker exec -it containerId sh 三.直接输入top命令: top 可看到基本的容器占用的信息:pid.vsz.cpu.command等.(ctrl+c 或 q,退出top) 四.查看更具体的jvm内存占用: top -m 其中,vsz:Virtual Memory

  • docker images,info,-d等命令报错的解决方法

    一.发现问题 楼主不管输入那个命令,都出现了: FATA[0000] Cannot connect to the Docker daemon. Is 'docker -d' running on this host? 二.解决方法 以及类似的错误,就连docker version命令都报错了,楼主开始找啊找,找到了好多东西,结果发现没一个能行的,最后楼主使用这样的命令: # vim /etc/default/docker 在该文件中添加如下内容: DOCKER_OPTS="-H unix:///

  • docker 内存监控与压测方式

    一直运行的docker容器显示内存已经耗尽,并且容器内存耗尽也没出现重启情况,通过后台查看发现进程没有占用多少内存.内存的监控使用的是cadvisor,计算方式也是使用cadvisor的页面计算方式,所以决定对docker的内存计算做下研究. docker version: Client: Version: 1.12.6 API version: 1.24 Go version: go1.6.4 Git commit: 78d1802 Built: Tue Jan 10 20:20:01 201

  • docker 容器自定义 hosts 网络访问操作

    在 docker-compose.yml 中增加 extra_hosts 关键字就可以将数据写入到容器的 /etc/hosts. extra_hosts 添加主机名映射. extra_hosts: "somehost:162.242.195.82" "otherhost:50.31.209.229" 将会在/etc/hosts创建记录: 162.242.195.82 somehost 50.31.209.229 otherhost 注意: 如果指向的是本机,不要写容

  • docker images 如何建立自己的原生镜像

    docker images 如何建立自己的原生镜像 制作image原生镜像需要使用febootstrap工具,需要注意的是,在centos7系列中,默认的源中不带此包,但是在centos6系列中,该包是默认可用使用的. 在centos6中安装febootstrap # yum install febootstrap -y 会安装相应的软件包:fakechroot-2.9-24.5.el6_1.1.x86_64.rpm . fakechroot-libs-2.9-24.5.el6_1.1.x86_

  • Docker images导出和导入操作

    之前已配置好基础镜像,其他地方也需要用到这些镜像时怎么办呢? 答案:镜像的导入和导出功能. 1.镜像的保存 [root@wxtest1607 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat8 3.0 90457edaf6ff 6 hours ago 1.036 GB [root@wxtest1607 lixr]# docker save 9045 > tomcat8-apr.tar [root@wxtest1607 li

  • mysql数据库创建账号、授权、数据导出、导入操作示例

    本文实例讲述了mysql数据库创建账号.授权.数据导出.导入操作.分享给大家供大家参考,具体如下: 1.账号创建及授权 grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant option; privileges:表示将所有权限授予给用户.也可指定具体的权限,如:SELECT.CREATE.DROP等. on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写"*&qu

  • docker实现导出、导入和数据搬迁

    docker 导出 导入有二种,一种是备份镜像,一种备份容器.数据搬迁,最简单粗暴就是直接COPY,volume的路径就行了. 一,导出导入镜像 #导出为tar docker save #ID or #Name > /home/save.tar #导入tar docker load < /home/save.tar 二,导出导入容器 #导出为tar docker export #ID or #Name > /home/export.tar #导入tar cat /home/export.

  • Docker镜像导出与导入与拷贝实例分析

    第一种解决方案是,将镜像推送到公有的镜像仓库,然后pull下来 第二种,将镜像打包,然后拷贝到第二台服务器中 #将镜像存储 docker save gateway:latest > /home/gateway.tar 将gateway.tar复制到需要的服务器上,然后在服务器上导入该镜像文件 #导入镜像文件 docker load --input /root/docker-images/nginx.tar 或者通过符号的方式来导入 docker load < /root/docker-imag

  • 在 docker 之间导出导入镜像的方法

    很喜欢玩docker,但最新遇到一个问题,公司给的新机器的dns有问题,导致pull不下来镜像. 没办法了,没有镜像什么神马都干不了,又不能花很多时间去搭建私有的镜像库,只有另寻办法了. 废话少说,经过探究,发现 docker 提供把镜像导出export(保存save)为文件的机制,这样就可以把镜像copy到任意地方了. 1. 导出 export - 导入 import 格式:docker export CONTAINER(容器) 使用 docker ps -a 查看本机已有的容器,如: 我们使

  • 详解使用export/import导出和导入docker容器

    本文介绍了使用export/import导出和导入docker容器,分享给大家,具体如下: 1.导出容器 如果要导出本地某个容器,可以使用 docker export 命令,导出容器快照到本地文件. $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7691a814370e ubuntu:14.04 "/bin/bash" 36 hours ago Exited (0) 21 hours

  • thinkphp5.1 框架导入/导出excel文件操作示例

    本文实例讲述了thinkphp5.1 框架导入/导出excel文件操作.分享给大家供大家参考,具体如下: thinkphp5.1 导入excel文件 public function importExcel() { try { //获取表格的大小,限制上传表格的大小 if ($_FILES['file']['size'] > 10 * 1024 * 1024) { //文件过大 log_debug($log_title . 'END === MSG:' . '文件过大'); parent::end

  • 导出与导入Docker的容器实现示例

    目录 Docker容器的导出 Docker容器的导入 本文主要讲解Docker容器的导入与导出,可以用作容器快照的备份. Docker容器的导出 1.首先使用命令查看已经创建的Docker容器 docker ps -a 这个时候可以看到container id也就是容器ID,我们只要根据容器ID就能导出相应的容器 2.导出某个容器 导出某个容器,非常简单,使用docker export命令,语法:docker export $container_id > 容器快照名 3.查看导出的容器 ls 4

  • 浅析MySQL数据的导出与导入知识点

    很多时候,我们会遇到需要将本机数据库数据导出或者其他数据库数据的导入操作,那么究竟该如何操作呢?本文将介绍MySQL数据的导出与导入,下面以heidisql工具为例讲解. 首先讲解mysql数据的导出. 打开工具heidisql,注意图中标注的1和2,在1处输入主机的ip地址(如果是本地,则地址为127.0.0.1).在2处输入mysql数据库的用户名和密码,其他设定如图所示即可,点击打开进入数据库管理界面. 进入如图所示的管理界面,左边1处可选择数据库,右上2处自动展示所选数据库的数据信息 在

  • DataGrip 数据导出与导入的实现示例

    目录 数据导入 导出数据结构及数据 导出结构 导入数据 DataGrip是由JetBarins出品,当然DataGrip也顺理成章成为了一个精品,这款软件是数据库管理与开发,各种智能提醒,各种数据库连接,让你更快速,更高效的完成任务.好了,不说废话.目前阶段,我也是初学者,对于这款软件的强大,也只是摸索了点皮毛.下面介绍一下,最基本的,数据导出与导入. 数据导入 DataGrip有多种数据导出模式,常用的有两种: Dump Data to File Dump with 'mysqldump' D

随机推荐