|
|
|
|
移动端

3.5 创建镜像

《Docker技术入门与实战(第2版)》第3章使用Docker镜像,本章将介绍围绕镜像这一核心概念的具体操作,包括如何使用pull命令从Docker Hub仓库中下载镜像到本地,如何查看本地已有的镜像信息和管理镜像标签,如何在远端仓库使用search命令进行搜索和过滤,如何删除镜像标签和镜像文件,如何创建用户定制的镜像并且保存为外部文件。本节为大家介绍创建镜像。

作者:杨保华/戴王剑/曹亚仑来源:机械工业出版社|2017-04-20 17:48

有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研


3.5 创建镜像

创建镜像的方法主要有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerf?ile创建。

本节将重点介绍前两种方法。最后一种基于Dockerfile创建的方法将在后续章节专门予以详细介绍。

1.基于已有镜像的容器创建

该方法主要是使用docker commit命令。命令格式为docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]],主要选项包括:

-a, --author="":作者信息;

-c, --change=[]:提交的时候执行Dockerf?ile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等;

-m, --message="":提交消息;

-p, --pause=true:提交时暂停容器运行。

下面将演示如何使用该命令创建一个新镜像。首先,启动一个镜像,并在其中进行修改操作,例如创建一个test文件,之后退出:

  1. $ docker run -it ubuntu:14.04 /bin/bash  
  2. root@a925cb40b3f0:/# touch test  
  3. root@a925cb40b3f0:/# exit 

记住容器的ID为a925cb40b3f0。

此时该容器跟原ubuntu:14.04镜像相比,已经发生了改变,可以使用docker commit命令来提交为一个新的镜像。提交时可以使用ID或名称来指定容器:

  1. $ docker commit -m "Added a new file" -a "Docker Newbee" a925cb40b3f0 test:0.1  
  2. 9e9c814023bcffc3e67e892a235afe61b02f66a947d2747f724bd317dda02f27 

顺利的话,会返回新创建的镜像的ID信息,例如9e9c814023bcffc3e67e892a235afe61b02f66a947d2747f724bd317dda02f27。

此时查看本地镜像列表,会发现新创建的镜像已经存在了:

  1. $ docker images  
  2. REPOSITORY        TAG     IMAGE ID        CREATED           VIRTUAL SIZE  
  3. test              0.1     9e9c814023bc    4 seconds ago     188 MB 

2.基于本地模板导入

用户也可以直接从一个操作系统模板文件导入一个镜像,主要使用docker import命令。命令格式为docker import [OPTIONS] file|URL|-[REPOSITORY[:TAG]]。

要直接导入一个镜像,可以使用OpenVZ提供的模板来创建,或者用其他已导出的镜像模板来创建。OPENVZ模板的下载地址为http://openvz.org/Download/templates/precreated

例如,下载了ubuntu-14.04的模板压缩包,之后使用以下命令导入:

  1. $ cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04 

然后查看新导入的镜像,会发现它已经在本地存在了:

  1. $ docker images  
  2. REPOSITORY        TAG         IMAGE ID         CREATED             VIRTUAL SIZE  
  3. ubuntu            14.04       05ac7c0b9383     17 seconds ago      215.5 MB 


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

超级网管员——网络基础

本书全面系统地概括了计算机网络的基本理论,详细阐述了OSI模型与网络协议、网络规划与综合布线、对等网络与服务器/客户端网络、Intranet服...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊