dockerfile 权限_解析 Dockerfile

点击上方蓝字关注我们,了解更多内容!

Dockerfile 就是一个描述镜像具体组成的具体文件,可以根据这个文件构建镜像。

FROM:指定基础镜像

FROM centos:7

MAINTAINER:镜像维护信息

MAINTAINER Benjamin Yang <133xxxx2282@163.com>

RUN:执行命令

RUN ["yum", "install", "httpd"]RUN yum install httpd

COPY:复制文本

COPY ... COPY ["",... ""] 可以是多个、以及使用通配符,通配符规则满足Go的filepath.Match 规则,如:COPY *.txt /workdir/    COPY hom?.txt /mydir/使用 COPY 指令,源文件的各种元数据都会保留。比如读、写、执行权限、文件变更时间等。

ADD:高级复制文件

ADD jdk-8u45-linux-x64.tar.gz / 可以是一个 URL ,下载后的文件权限自动设置为 600 。

CMD:容器启动命令

shell 格式:CMD

exec 格式:CMD ["可执行文件", "参数1", "参数2"...]

CMD nginx -g "daemon off;"

CMD ["nginx", "-g", "daemon off;"]

ENTRYPOINT:入口点

同 CMD,指定容器启动程序及参数。

通过--entrypoint 参数在运行时替换。

启动容器时执行的 Shell 命令,同 CMD 类似,只是由 ENTRYPOINT 启动的程序不会被 docker run 命令行指定的参数所覆盖,而且,这些命令行参数会被当作参数传递给ENTRYPOINT 指定指定的程序,例如:

PS:Dockerfile 文件中也可以存在多个 ENTRYPOINT 指令,但仅有最后一个会生效。

示例:

FROM ubuntu:16.04

RUN apt-get update \

&& apt-get install -y curl \

&& rm -rf /var/lib/apt/lists/*

ENTRYPOINT [ "curl", "-s", "http://ip.cn" ]

追加-i参数

$ docker run myip -i

......

当前 IP:61.148.226.66 来自:北京市 联通

ENV:设置环境变量

在其他指令中可以直接引用 ENV 设置的环境变量。

ENV MYSQL_ROOT_PASSWORD 123456

ENV JAVA_HOME /usr/local/jdk1.8.0_45

ARG:构建参数

与 ENV 不同的是,容器运行时不会存在这些环境变量。

可以用 docker build --build-arg = 来覆盖。

FROM centos:6

ARG user # ARG user=root

USER $user

这时,我们在 docker build 时可以带上自定义参数 user了,如下所示:

docker build --build-arg user=benjaminYang Dockerfile .

VOLUME:定义匿名卷

VOLUME ["/var/lib/mysql"]

PS:一般不会在 Dockerfile 中用到,更常见的还是在 docker run 的时候指定 -v 数据卷。

EXPOSE:暴露端口

声明容器运行的服务端口,例如:

EXPOSE 80 443

WORKDIR:指定工作目录

为 RUN、CMD、ENTRYPOINT 以及 COPY 和 AND 设置工作目录,例如:

WORKDIR /data

USER:指定当前用户

这个用户必须是事先建立好的,否则无法切换。

USER

HEALTHCHECK:健康检查

HEALTHCHECK --interval=5m --timeout=3s --retries=3 \    CMD curl -f http:/localhost/ || exit 1

其中,一些选项的说明:

  •  --interval=DURATION (default: 30s):每隔多长时间探测一次,默认30秒

  •  -- timeout= DURATION (default: 30s):服务响应超时时长,默认30秒

  •  --start-period= DURATION (default: 0s):服务启动多久后开始探测,默认0秒

  •  --retries=N (default: 3):认为检测失败几次为宕机,默认3次

  • 一些返回值的说明:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值