Docker基础使用方法总结之dockerfile接之前总结文档 :Docker容器的基础使用方法总结【五】——Dockerfile
13.USER
用于指定运行image时的或运行Dockerfile中任何RUN、CMD或ENTRYPOTION指令指定的程序时的用户名或UID,默认情况下,container的运行身份为root用户
Syntax
USER <UID> | <UserName>
需要注意的是,UID可以为任意数字,但实践中其必须为/etc/passwd中某用户的有效UID,否则,docker run命令将运行时效。
14.HELTHCHECK
用作检查容器container的健康状况
Syntax
- HEALTHCHECK [options] CMD: 通过在容器中运行Command命令检查container的检查状态,也可以使用
- HEALTHCHECK NONE: 禁止任何健康检查
选项(options):
--interval=DURATION(default:30s) # 每隔多长时间检查一次,默认30m秒 --timeout=DURATION(default:30s) # 超时时间,默认30秒 --start-perid=DURATION(default:0s) # 开始检查时间,默认0秒即容器运行后立即检查 --retries=N(default:3) # 检查失败后持续检查的次数,默认3次
检查状态返回参数:
0:sucess 1:unhealthy 2:reserved
实例:
HEALTHCHECK --interval=5m --timeout=3s \ CMD curl -f http://localhost/ || exit 1
15.SHELL
SHELL指令可以替换默认使用的shell命令,SHELL指令必须在dockerfile中写作json格式,可以使用多次
Syntax
SHELL ["executable","parameters"]
Linux系统默认shell为[“/bin/sh”,”-c”],windows系统默认shell是[“cmd”,”/S”,”/C”]。
16.STOPSIGNAL
通过给主进程发送停止信号停止容器,默认是15信号,退出信号也可以是信号9或者信号的名称
Syntax
STOPSIGNAL signal
17.ARG
ARG指令用于定义变量,在docker build中创建新镜像时使用,添加选项–build-arg <varname>=<value>执行docker build后这个变量的值会替换dockerfile中ARG定义的值,如果指定一个没有定义的变量,docker build会输出一个告警。
Syntax
ARG <name>[=<default value>]
实例:
ARG version=1.14 ARG user=zqj
18.ONBUILD
用于在dockerfile中定义一个触发器,dockerfile用于build镜像文件,此镜像文件亦可作为base image被另一个dockerfile用作FROM参数,并以之构建新的镜像文件。
在后面的这个dockerfile中的FROM指令在build过程中被执行时。将会”触发”创建其base image的dockerfile文件中的ONBUILD指令定义的触发器。
Syntax
ONBUILD <INSTRUCTION>
- 尽管任何指令都可注册成为触发指令,但是ONBUILD不能自我嵌套,且不会触发FROM和MAINTAINER指令
- 使用包含ONBUILD指令中使用ADD或COPY指令应该格外小心,因为新构建过程的上下文在缺少指定的源文件是会失败。
评论前必须登录!
注册