docker构建镜像

Dockerfile就是用来构建docker镜像的构建文件,是一个命令脚本
通过这个脚本可以生成镜像,镜像是一层一层的,脚本一个命令就是一层,也就是说,一个命令就是一层

**

构建步骤:
1.编写一个dockerfile文件
2.docker build 构建成为一个镜像
3.docker run 运行镜像
4.docker push 发布镜像,可以发布到dockerHub,阿里云镜像仓库

**

这个脚本文件名是自定义的,不过,一般都是dockerfile比较好一点,
dockerfile文件里面的内容,所有的指令都是大写

FROM centos
VOLUME ["volume01","volume02"]
CMD echo "---end---"
CMD /bin/bash

每一个指令都会创建提交一个新的镜像
在这里插入图片描述

dockerfile指令

在这里插入图片描述

FROM 基础镜像,一切以这里开始 MAINTAINER 镜像是谁写的,一般是姓名加邮箱
RUN 镜像构建的时候需要运行的命令
ADD 步骤,这个是我们自己加的内容,比如,往这个镜像里面加MySQL
WORKDIR 镜像的工作目录
VOLUME 挂载的目录
EXPOSE 保留端口配置
CMD 指定这个容器启动的时候要运行的命令,只有最后一个生效,这个是替代
ENTRYPOINT 指定这个容器启动的时候要运行的命令,可以追加命令 这个会与CMD弄混淆
ONBUILD 当构建一个被继承dockerfile 这个时候就会运行ONBUILD
COPY 类似ADD,将我们文件拷贝到镜像中
ENV 构建的时候设置环境变量

启动了刚刚打包的镜像后,出现了这两个目录,这个就是我在dockerfile里面挂载的目录
在这里插入图片描述
这两个目录在外面一定有以之对应的挂载目录,只不过,我在上面的dockerfile文件里面写的是匿名挂载,需要查看挂载详细,需要去看这个容器的详细信息

docker inspect 容器id

找到了这个
在这里插入图片描述
看,挂载详细找到了

制作Centos镜像

现在来制作一个自己的镜像

[root@iZwz99sm8v95sckz8bd2c4Z dockerfile]# cat mydockerfile-centos
FROM centos #基于什么镜像
MAINTAINER xiaoxin<xiaoxindcw@163.com> #制作人,备注

ENV MYPATH /usr/local #设置环境变量
WORKDIR $MYPATH #使用环境变量,就是一启动镜像会进入这个目录

RUN yum -y install vim #安装vim
RUN yum -y install net-tools #安装net-tools

EXPOSE 80 #暴露端口

#指定容器启动的时候运行命令
CMD echo $MYPATH 
CMD echo "---end---"
CMD /bin/bash

dockerfille文件写好后,就可以开始构建镜像了

docker build -f dockerfile文件路径 -t 镜像名[:版本号] . #(这里有个小点.)

上面命令中,-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。

制作成功后,还可以去查看构建详细

docker gistory 容器id

在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker 构建镜像是通过编写 Dockerfile 文件来指定构建镜像的步骤和配置。Dockerfile 是由多条指令构成的,每一条指令对应于 Docker 镜像中的每一层。Dockerfile 中的每个指令都会创建一个新的镜像层,这个层可以理解为一个临时的容器。每个指令都会在当前的层上进行操作,执行完后,当前层的状态将被记录下来并成为下一层的基础。这样就实现了镜像分层的原理。 在构建 Docker 镜像时,可以根据需要使用不同的指令,例如使用 FROM 指令选择基础镜像,使用 RUN 指令执行命令,使用 COPY 指令复制文件,使用 EXPOSE 指令暴露端口等等。通过这些指令的组合,可以按照需求来构建具有特定功能和配置的镜像。 举例来说,可以通过编写 Dockerfile 来构建一个包含 SSH 服务的镜像。在 Dockerfile 中,可以使用基础镜像、安装 SSH 服务的指令来构建,最后可以通过构建镜像来运行 SSH 服务。同样的原理也适用于构建其他类型的镜像,例如包含 Systemctl 或 Tomcat 的镜像。 总结来说,Docker 构建镜像是通过编写 Dockerfile 文件,使用多条指令来指定构建镜像的步骤和配置。每个指令都会创建一个新的镜像层,实现了镜像分层的原理。可以根据需求选择不同的指令来构建具有特定功能和配置的镜像。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小信啊啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值