首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Docker系列】手把手教你写Dockerfile

【Docker系列】手把手教你写Dockerfile

作者头像
用户9913368
发布2022-08-13 15:32:15
发布2022-08-13 15:32:15
83300
代码可运行
举报
文章被收录于专栏:嘎嘎软件测试嘎嘎软件测试
运行总次数:0
代码可运行

1 Dockerfile是什么

Dockerfile是一个制作镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

可以理解为Dockerfile就是构建镜像的一张工程图,里面定义了这个镜像需要几块砖,几片瓦,砖放哪里,瓦放哪里。

2 Dockerfile的基础结构

#开头的表示注释行,说明dockerfile中的指令

基础镜像信息

维护者的信息

镜像操作指令

容器操作指令

3 Dockerfile中常见的操作指令和作用

FROM:指定创建镜像的基础镜像

MAINTAINER:Dockerfile作者信息,一般写的是联系方式

RUN:运行Linux系统的命令使用

CMD:指定容器启动执行的命令;启动容器中的服务

LABEL:指定生成镜像的源数据标签

EXPOSE:指定镜像容器监听端口号;发布服务使用

ENV:使用环境变量

ADD:对压缩文件进行解压缩;将数据移动到指定的目录

COPY:复制宿主机数据到镜像内部使用

WORKDIR:切换到镜像容器中的指定目录中

VOLUME:挂载数据卷到镜像容器中

USER:指定运行容器的用户

ARG:指定镜像的版本号信息

ONBUILD:创建镜像,作为其他镜像的基础镜像运行操作指令

ENTRYPOINT:指定运行容器启动过程执行命令,覆盖CMD参数

4 Dockerfile举个栗子

代码语言:javascript
代码运行次数:0
运行
复制
FROM base-images:v1.0.0                  #指定基础镜像:base-images, 版本:v1.0.0

MAINTAINER <wmh>                         #维护者信息<wmh>

ARG VERSION=dev                          #定义变量
COPY ./tmp/demo-core.tar.gz /app/core    #COPY文件
WORKDIR /app/core                        #WORKDIR等于cd
RUN bash -c 'tar -xzvf demo-core.tar.gz' #RUN执行shell命令
ENV VERSION=${VERSION}                   #设置环境变量
EXPOSE 2222                              #对外暴露端口2222
CMD ["/tmp/run-java.sh"]                 #运行启动脚本

注:CMD不同于RUN,CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。

5 Dockerfile构建镜像

通过docker build从Dockerfile构建镜像。可以理解为我们已经画好工程图,开始施工啦,构建完之后就可以放到500坪的大平层啦。

代码语言:javascript
代码运行次数:0
运行
复制
#使用当前目录的 Dockerfile 创建镜像,标签为 NewImages:v1.0.0
docker build -t NewImages:v1.0.0 .  # . 指当前路径下的Dockerfile

使用docker images查看刚构建的镜像

5 总结

以上就是Dockerfile的基本介绍了,感兴趣的小伙伴可以去实践一下。

顺便提下,在执行Run bash copy命令是注意文件的相对路径,我之前就在这里搞错了路径,折腾了很久......

最后找到原因的我眼泪留下来......

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嘎嘎软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Dockerfile是什么
  • 2 Dockerfile的基础结构
  • 3 Dockerfile中常见的操作指令和作用
  • 4 Dockerfile举个栗子
  • 5 Dockerfile构建镜像
  • 5 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档