DockerFile构建自己的centos

什么是DockerFile?

dockerfile相当于是一个文档,可以基于dockerfile构建docker镜像的文件。

dockerfile仅仅是用来制作镜像的源码文件,是构建容器过程中的指令,docker能够读取dockerfile的指定进行自动构建容器,基于dockerfile制作镜像,每一个指令都会创建一个镜像层,即镜像都是多层叠加而成,因此,层越多,效率越低,创建镜像,层越少越好。因此能在一个指令完成的动作尽量通过一个指令定义。

构建步骤:

  • 编写一个dockerfile文件
  • dockerbuild构建成为一个镜像
  • dockerrun运行镜像
  • dockerpush 发布镜像(DockerHub、阿里云镜像仓库!)

DockerFile的构建过程

  • 每个保留关键字(指令)都是必须大写字母
  • 执行从上到下顺序执行
  • #标识注释
  • 每一个指令都会创建提交一个新的镜像层,并提交
    在这里插入图片描述

DockerFile的指令

FROM          基础镜镜像,一切从这里开始构建 
MAINTAINER    镜像是谁写的,姓名+邮箱 
RUN           镜像构建的时候需要运行的命令 
ADD           步骤,tomcat镜像,这个tomcat压缩包!添加内容 
WORKDIR       镜像的工作目录 
VOLUME        挂载的目录 
EXPOSE        保留端口配置 
CMD           指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代 
ENTRYPOINT    指定这个容器启动的时候要运行的命令。可以追加命令 
ONBUILD       当构建一个被继承DockerFile这个时候就会运行ONBUILD 的指令。触发指令。 
COPY          类似ADD,将我们文件拷贝到镜像中 
ENV           构建的时候设置环境变量

在这里插入图片描述

构建自己的centos

DockerHub中99%镜像都是从这个基础镜像过来的FROM scratch,然后配置需要的软件和配置来进行的构建。
在这里插入图片描述
1、创建一个dockfile 文件

mkdir dockerfile

2、编写dockerfile文件mydockefile-centos

[root@iZwz9geewjuo2sogidqn50Z dockerfile]# cat mydockefile-centos
FROM centos
MAINTAINER li<1325510524@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo  $MYPATH
CMD echo "------end-------"
CMD /bin/bash

3、通过这个文件构建镜像

命令语法:

docker build -f dockerfile文件路径 -t 镜像名:[tag]

示例:

[root@iZwz9geewjuo2sogidqn50Z dockerfile]# docker build  -f  mydockefile-centos -t mycentos:0.1 .
Sending build context to Docker daemon  2.048kB
Step 1/10 : FROM centos
 ---> 5d0da3dc9764
Step 2/10 : MAINTAINER li<1325510524@qq.com>
 ---> Running in 9dc0190e27ad
Removing intermediate container 9dc0190e27ad
 ---> e7a0495b3e0c
Step 3/10 : ENV MYPATH /usr/local
 ---> Running in cfe662f57224
Removing intermediate container cfe662f57224
 ---> ebf49015fcf7
Step 4/10 : WORKDIR $MYPATH
 ---> Running in 29952bc96a95
Removing intermediate container 29952bc96a95
 ---> eb102496fe14
Step 5/10 : RUN yum -y install vim
 ---> Running in e79f7790e2f7
CentOS Linux 8 - AppStream                      1.5 MB/s | 8.4 MB     00:05
CentOS Linux 8 - BaseOS                         2.8 MB/s | 4.6 MB     00:01
CentOS Linux 8 - Extras                          10 kB/s |  10 kB     00:01
Dependencies resolved.
.
.
.
Successfully built 83d85b399f29
Successfully tagged mycentos:0.1

看到Successfully built 83d85b399f29 Successfully tagged mycentos:0.1就说明成功了!

4、测试运行
对比官方的镜像:
在这里插入图片描述
自己构建的镜像:
在这里插入图片描述
可以列出本地进行的变更历史:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dockerfile是用于构建Docker镜像的文本文件。根据引用\[1\]和引用\[2\]的内容,你可以使用两种不同的模式来构建一个centos镜像。 在exec模式下,你可以使用以下Dockerfile构建centos镜像: ``` FROM centos:7 CMD \["echo","$HOME"\] ``` 然后使用以下命令构建镜像: ``` docker build -t centos:ydq . ``` 在shell模式下,你可以使用以下Dockerfile构建centos镜像: ``` FROM centos:7 CMD \["sh","-c","echo $HOME"\] ``` 然后使用以下命令构建镜像: ``` docker build -t centos:ydq2 . ``` 请注意,这两种模式下的Dockerfile都是基于centos:7镜像构建的,并使用CMD指令来定义容器启动时要执行的命令。你可以根据自己的需求选择使用哪种模式来构建centos镜像。 #### 引用[.reference_title] - *1* *2* [docker:dockerfile构建镜像](https://blog.csdn.net/qq_69278945/article/details/127461465)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Dockerfile构建镜像](https://blog.csdn.net/gcc001224/article/details/125864815)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值