Dockerfile相关指令

Dockerfile是一个用来定义构建镜像的文件,通常分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器自动执行指令。

  • FROM:第一行必须指定基础镜像
FROM nginx
或
FROM nginx:1.18
  • MAINTAINER:维护者信息
MAINTAINER admin admin@admin.com
  • RUN:在当前镜像基础上执行命令,并提交为新的镜像
RUN yum install nginx
  • CMD:指定启动容器时执行的命令,有且只能有一个CMD,如果存在多个,则只有最后一个生效;如果在"docker run"指定了运行命令,CMD的命令会被覆盖掉
CMD ["executable", "arg1", "arg2", ...] 
  • ENTRYPOINT:指定启动容器时执行的命令,有且只能有一个,如果存在多个则只有最后一个生效;"docker run"指定命令时不会被覆盖掉
ENTRYPOINT ["executable", "arg1", "arg2", ...]
  • VOLUME:创建一个可以从本地主机或其它容器挂载的挂载点,一般用来存放数据库和需要保持的数据等
VOLUME ["/data"]
  • EXPOSE:指定容器暴露的端口号
EXPOSE 80  # 指定多个端口,如:EXPOSE 80 443
  • ENV:指定环境变量,会被后面的RUN指令使用,并在容器运行时保持
ENV PG_VERSION 9.8.0  # 格式如:ENV key value 
  • ADD:复制指定的src到容器中的dest;src可以是Dockerfile所在目录的一个相对路径;也可以是URL、或tar文件
ADD src dest
  • COPY: 复制本地主机的src为容器中的dest;目标路径不存在时,会自动创建
COPY src dest
  • ARG:构建参数,与 ENV 作用一至;ARG设置的环境变量仅在Dockerfile内有效,也就是说只有docker build的过程中有效,构建好的镜像内不存在此环境变量。

构建命令 docker build 中可以用 --build-arg <参数名>=<值> 来覆盖。

ARG key value
  • WORKDIR:指定工作目录(目录必须是提前创建好的),用WORKDIR指定的工作目录,会在构建镜像的每一层中都存在;docker build构建镜像过程中的,每一个RUN命令都是新建的一层,只有通过 WORKDIR 创建的目录才会一直存在。
WORKDIR <工作目录路径>
  • USER:用于指定执行后续命令的用户和用户组(用户和用户组必须提前已经存在)。
USER <用户名>
  • HEALTHCHECK:用于指定某个程序或者指令来监控 docker 容器服务的运行状态。
HEALTHCHECK [选项] CMD <命令>:设置检查容器健康状况的命令
HEALTHCHECK NONE:如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令
HEALTHCHECK [选项] CMD <命令> : 这边 CMD 后面跟随的命令使用,可以参考 CMD 的用法。

示例

FROM nginx:1.18
MAINTAINER admin@admin.com

RUN apt update && apt install wget vim -y

构建

格式:
docker build -t target_registry/image_name:TAG .   # 在Dockerfile所在目录执行

示例:
docker build -t nginx-vim:v1 .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值