dockerfile的语法和指令

dockerfile是什么?

Dockerfile 是由一系列指令和参数构成的脚本,一个 Dockerfile 里面包含了构建整个镜像的完整命令。通过 docker build 执行 Dockerfile 中的一系列指令自动构建镜像。

常用指令

  • FROM:基础镜像,FROM 命令必须是 Dockerfile的首个命令
  • LABEL:为镜像生成元数据标签信息
  • USER:指定运行容器时的用户名或 UID,后续 RUN 也会使用指定用户。
  • RUN:RUN 是Dockerfile 行的核心部分。它接受作为参数并用于创建镜像。每条 RUN 在当前基础像上执行,并且会提交一个新镜像层
  • WORKDIR:设置 CMD 指明的命今的运行目录。为后续的 RUN、CMD、ENTRYPOINT、ADD 指配置工作目录
  • ENV:容器启动的环境变量
  • ARG:构建环境的环境变量-dockerfile使用
  • COPY:复制文件
  • CMD: 容器运行时执行的默认命令,容易被覆盖,可以用ENTRYPOINT
  • ENTRYPOINT:指定容器的”入口”
  • HEALTHCHECK: 容器健康状态检查

示例:

#可指定版本,也可不指定,不指定为latest
FROM nginx

#设置标签,创作者信息等
LABEL maintainer="test.com"

#设置环境变量
ENV nginx_version latest
ARG work_pwd=/tmp/dockertest

#执行命令
RUN apt-get -yq update && apt-get install -y curl && \
ln -sf /dev/stdout /var/log/nginx/access.log && \
ln -sf /dev/stderr /var/log/nginx/error.log

# 挂载卷
VOLUME ["/data"]

#设置工作目录
WORKDIR $work_pwd

#设置容器运行时的监听端口
EXPOSE 8088

#此处 CMD 作为 ENTRYPOINT 的参数
CMD ["nginx","-g","daemon off;"]

STOPSIGNAL SIGRTMAX
HEALTHCHECK --interval=5s --timeout=3s CMD curl -fs http://localhost/ || exit 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dockerfile是用来定义Docker镜像的文本文件。它包含了一系列的指令,用于构建镜像的过程。根据引用\[1\]的内容,这是一个示例的Dockerfile文件,其中使用了FROM、ENV和ENTRYPOINT指令。FROM指令用于指定基础镜像,ENV指令用于设置环境变量,ENTRYPOINT指令用于指定容器启动时要执行的命令。 根据引用\[2\]的内容,构建Docker镜像的命令格式为:docker build -t \[镜像名\]:\[版本号\] \[Dockerfile所在目录\]。其中,-t参数用于指定构建后的镜像信息,\[Dockerfile所在目录\]表示Dockerfile文件所在的路径。 根据引用\[3\]的内容,示例的构建命令为:docker build -t mysoft/centos:6.6 /tmp/dockerfile/centos6。这个命令将会根据指定的Dockerfile文件在/tmp/dockerfile/centos6目录下构建一个名为mysoft/centos的镜像,版本号为6.6。 总结起来,Dockerfile是用来定义Docker镜像的文件,它包含了一系列的指令构建Docker镜像的命令格式为docker build -t \[镜像名\]:\[版本号\] \[Dockerfile所在目录\]。 #### 引用[.reference_title] - *1* [dockerfile语法](https://blog.csdn.net/MyySophia/article/details/109491622)[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^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Dockerfile语法](https://blog.csdn.net/u013755520/article/details/91126933)[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^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [详解Dockerfile基本语法](https://blog.csdn.net/zhousenshan/article/details/126208642)[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^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值