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

简介: 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】 【新的镜像名】
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

目录
相关文章
|
9月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
539 100
|
9月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
532 99
|
9月前
|
缓存 Docker 容器
优化Docker镜像大小的五个实用技巧
优化Docker镜像大小的五个实用技巧
816 98
|
9月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
Docker 容器 Perl
云效flow构建docker镜像更换apt源为阿里镜像源
在 Dockerfile 中添加命令以更换 Debian 源为阿里云镜像,加速容器内软件包下载。核心命令通过 `sed` 实现源地址替换,并更新 apt 软件源。其中 `cat` 命令用于验证替换是否成功,实际使用中可删除该行。
2972 32
|
8月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
857 6
|
11月前
|
Docker 容器 应用服务中间件
Docker 客户端是如何拉取镜像的?
Docker客户端拉取镜像的过程遵循Docker Registry HTTP API V2规范,主要分为解析镜像名、鉴权、获取Manifest、拉取Layers及本地合并五个步骤。它与Docker Hub、Harbor等仓库通信,确保镜像正确下载和构建。
1610 59
|
9月前
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
361 8
|
10月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
607 16
|
缓存 Shell 网络安全
将应用程序打包成Docker镜像时可能遇到哪些问题?
将应用程序打包成Docker镜像时可能遇到哪些问题?
1133 77