Docker镜像的创建、存出、载入的方法

 更新时间:2018年12月03日 14:07:57   作者:人艰不拆_zmc  
这篇文章主要介绍了Docker镜像的创建、存出、载入的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

创建镜像的方法有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建,本博文讲解前两种。

基于已有镜像的容器创建

该方法是使用docker commit命令,其命令格式为:

 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

主要参数选项包括:

  • -a ,–author=”” 作者信息
  • -m,–message=”” 提交信息
  • -p,–pause=true 提交是暂停容器运行

比如,先创建一个运行bash的ubuntu容器:

docker run –it ubuntu /bin/bash

root@d8990fec2141:/# touch test

root@d8990fec2141:/# exit

然后根据创建的这个容器来提交一个新的镜像,提交时需要用到容器ID。

 docker commit –m “test” –a “zmc” d8990fec2141 testimage

如果成功的话,就会返回新镜像的长ID号,然后可以查看看在本地已有的镜像:

docker images

REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE

testimage      latest       baea98d5a437    About a minute ago  188.3 MB

……

第三行就是刚刚创建的镜像。

PS:利用此容器创建的镜像Id与此容器的镜像id不同,可知它们不是同一镜像。

基于本地模板导入

也可以从操作系统模板文件导入一个镜像,比如使用OpenVZ提供的模板创建,OPENVZ下载模板在:http://openvz.org/Download/template/precreated

我尝试使用了Ubuntu14.04的模板: 

wget http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz

下载完之后就可以导入了:

sudo cat ubuntu–14.04–x86_64–minimal.tar.gz | docker import – ubuntu:14.04

其实只是两个命令,不过很显而易见,就不加解释了。成功的话,就会返回根据模板建立的镜像的长ID

sudo cat ubuntu–14.04–x86_64–minimal.tar.gz | docker import – ubuntu:14.04

ab80404d13d580965b9919b640169ccb585ea7884e6aa9de1ec043075c65fe35

然后就可以查看本地的镜像:

docker images

REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE

ubuntu       14.04        ab80404d13d5    56 seconds ago   215.4 MB

testimage      latest       baea98d5a437    29 minutes ago   188.3 MB

….

其实可以看出,虽然模板才75M,但创建的镜像并不小。

镜像的存出和载入

可以利用docker save和docker命令来存出和载入镜像。

存出镜像

如果想要把镜像存出到本地文件,可以使用docker save命令,例如,存出本地的刚才创建的testimage:lastest为镜像文件testimage.tar文件:

docker images

REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE

testimage      latest       baea98d5a437    25 minutes ago   188.3 MB

ubuntu       latest       fa81ed084842    3 days ago     188.3 MB

….

docker save –o /data/testimage.tar testimage:latest

上面的第6行就是存出代码,这时在/data下就有一个testimage.tar文件,这时我们把本地镜像rmi掉,然后尝试载入。

载入镜像

删除镜像之后的状态:

ubuntu@VM–223–238–ubuntu:/data$ docker rmi baea98d5a437

Untagged: testimage:latest

Deleted: baea98d5a4371a6abf9efc8c53a54a6fc5befd167bf91ce9fd4a28a6d1b7dc5b

ubuntu@VM–223–238–ubuntu:/data$ docker images

REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE

ubuntu       14.04        ab80404d13d5    5 minutes ago    215.4 MB

然后载入镜像:

docker load —input testimage.tar

docker images

REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE

ubuntu       14.04        ab80404d13d5    6 minutes ago    215.4 MB

testimage      latest       baea98d5a437    35 minutes ago   188.3 MB

第一行就是载入镜像,还可以简化写成:

docker load —input testimage.tar

docker images

REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE

ubuntu       14.04        ab80404d13d5    6 minutes ago    215.4 MB

testimage      latest       baea98d5a437    35 minutes ago   188.3 MB

载入操作将会导入镜像以及相关的元数据信息(包括标签等)。

镜像的上传

最后说点镜像的上传,镜像的管理方式非常像git,可以使用docker push命令上传自己本地镜像到仓库,默认上传到DockerHub官方仓库(需要登陆),命令格式:

 docker push NAME[:TAG]

在上传之前一般会先为自己的镜像添加带自己名字(作者信息)的标签:

docker tag testimage:lastest zmc/testimage:lastest

docker pushzmc/testimage:lastest

有利于上传之后的区分。

我觉得无论是运维团队还是开发团队还是一个实验室,都有必要有一个自己的Docker仓库,可以存放符合自己需求的环境或系统镜像,可以实现快速部署。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • docker在ubuntu14.04下的安装步骤

    docker在ubuntu14.04下的安装步骤

    这篇文章主要介绍了docker在ubuntu14.04下的安装步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 手把手教你docker部署(使用docker-compose)教程

    手把手教你docker部署(使用docker-compose)教程

    使用 Docker Compose 可以轻松、高效的管理容器,下面这篇文章主要给大家介绍了关于手把手教你docker部署(使用docker-compose)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Docker学习笔记之docker入门

    Docker学习笔记之docker入门

    docker可以类比成window下的VMware。docker有两个基本的概念:容器(container)和镜像(image),分别对应为VMware中的系统镜像和系统镜像中运行的软件。docker的强大之处在于VMware只能运行几个虚拟机的设备上docker可以同时运行几十甚至上百个虚拟机。
    2016-11-11
  • Docker使用GPU全过程

    Docker使用GPU全过程

    这篇文章主要介绍了Docker使用GPU全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • CentOS7.3中Docker的安装教程

    CentOS7.3中Docker的安装教程

    Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。这篇文章主要给大家介绍CentOS7.3中Docker的安装教程,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2017-04-04
  • Docker修改容器内部文件的三种方法

    Docker修改容器内部文件的三种方法

    今天在修改Docker内部文件的时候,安装vim居然失败了,在执行apt-get update时一直有几个404,解决无果,最后放弃安装vim,将文件拷贝出来修改,所以本文给大家分享一下如何修改Docker内部文件的方法,需要的朋友可以参考下
    2024-01-01
  • 浅谈docker-compose网络设置之networks

    浅谈docker-compose网络设置之networks

    这篇文章主要介绍了浅谈docker-compose网络设置之networks,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Redis快速部署为Docker容器的实现方法

    Redis快速部署为Docker容器的实现方法

    本文主要介绍了Redis快速部署为Docker容器的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • docker compose 服务启动顺序控制的方法

    docker compose 服务启动顺序控制的方法

    这篇文章主要介绍了docker compose 服务启动顺序控制的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Docker安装Nacos详细图文教程

    Docker安装Nacos详细图文教程

    这篇文章主要为大家详细介绍了Docker安装Nacos详细图文教程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07

最新评论