今天继续给大家介绍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】 【新的镜像名】
1
即可生产一个含有EPEL扩展源的镜像,如下所示:
三、使用Docker build方式制作镜像
除了上述方式外,我们还可以使用Docker build方式制作镜像。这种方式需要我们提前配置好Dockerfile文件,在该文件中记录了该镜像应该以哪个镜像为基础,以及需要进行的操作。
下面我们使用Docker build方式制作一个含有Apache服务的镜像,过程如下:
1、新建一个目录,作为制作Docker镜像的目录,执行命令:
mkdir -p /docker-build
1
2、接下来,创建Dockerfiel,执行命令:
touch Dockerfile
1
同时向文件中写入如下内容:
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"
1
2
3
4
5
6
7
在上述配置中,FROM指的是从哪个镜像开始进行制作;MAINTAINER指定了Docker镜像的制作者;RUN命令后面跟一个命令,表示要在Docker镜像的制作过程中要执行的命令;ADD命令指定了从该目录中复制到Docker镜像中的文件;最后的CMD命令在一个Dockerfile中只能有一个,表示在镜像制作的最后要执行的命令。
3、最后,我们将Apache服务的配置文件httpd.cong和主页文件index.html复制到本地目录下。
4、最后,我们执行命令,创建Docker镜像
命令格式为:
docker build -t 【父镜像名】:【新镜像tag】 【构建镜像的目录】
1
我们执行命令如下:
docker build -t docker.io/centos/systemd:apache ./
1
执行结果如下:
执行完毕后,出现了我们新制作的镜像,如下所示:
我们打开该镜像,发现存在端口映射,如下所示:
我们访问该端口,结果如下:
可以看出,我们的Docker镜像制作成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40228200/article/details/124171663