Docker详解(八)——Docker镜像制作

今天继续给大家介绍Linux运维相关知识,本文主要内容是Docker镜像制作。

一、Docker镜像制作概述

在之前,我们在配置号Docker的镜像源后,就可以下载(拉取)Docker的镜像了。那么Docker镜像是如何制作的呢?今天,我就介绍一些Docker制作的两种方法:
1、使用Docker commit方式制作镜像。
2、使用Docker build方式制作镜像。

二、使用Docker commit方式制作镜像

使用Docker commit的方式制作镜像,就是我们将一个Docker容器的状态记录下来,然后生成一个Docker镜像。
例如,假如我们要配置一个含有EPEL扩展源的镜像,那么我们可以先打开进入一个镜像,在打开的Docker容器中,安装EPEL的源,如下所示:

接下来,我们退出该容器,然后执行命令:

docker commit 【容器ID】 【新的镜像名】

即可生产一个含有EPEL扩展源的镜像,如下所示:

三、使用Docker build方式制作镜像

除了上述方式外,我们还可以使用Docker build方式制作镜像。这种方式需要我们提前配置好Dockerfile文件,在该文件中记录了该镜像应该以哪个镜像为基础,以及需要进行的操作。
下面我们使用Docker build方式制作一个含有Apache服务的镜像,过程如下:
1、新建一个目录,作为制作Docker镜像的目录,执行命令:

mkdir -p /docker-build

2、接下来,创建Dockerfiel,执行命令:

touch Dockerfile

同时向文件中写入如下内容:

FROM docker.io/centos/systemd
MAINTAINER Pzz
RUN yum install -y httpd
ADD httpd.conf /etc/httpd/conf/httpd.conf
ADD index.html /var/www/html/index.html
RUN httpd
CMD echo "OK"

在上述配置中,FROM指的是从哪个镜像开始进行制作;MAINTAINER指定了Docker镜像的制作者;RUN命令后面跟一个命令,表示要在Docker镜像的制作过程中要执行的命令;ADD命令指定了从该目录中复制到Docker镜像中的文件;最后的CMD命令在一个Dockerfile中只能有一个,表示在镜像制作的最后要执行的命令。
3、最后,我们将Apache服务的配置文件httpd.cong和主页文件index.html复制到本地目录下。
4、最后,我们执行命令,创建Docker镜像
命令格式为:

docker build -t 【父镜像名】:【新镜像tag】 【构建镜像的目录】

我们执行命令如下:

docker build -t docker.io/centos/systemd:apache ./

执行结果如下:


执行完毕后,出现了我们新制作的镜像,如下所示:
Docker详解(八)——Docker镜像制作_第1张图片
我们打开该镜像,发现存在端口映射,如下所示:
Docker详解(八)——Docker镜像制作_第2张图片
我们访问该端口,结果如下:
Docker详解(八)——Docker镜像制作_第3张图片
可以看出,我们的Docker镜像制作成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(虚拟化运维,Docker,镜像,镜像制作,commit,build)