分享交流
合作共赢!

Docker容器的基础使用方法总结【六】——Dockerfile

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指令应该格外小心,因为新构建过程的上下文在缺少指定的源文件是会失败。

 

参考:Dockerfile文件详解  Dockerfile指令详解

赞(0) 打赏
未经允许不得转载:琼杰笔记 » Docker容器的基础使用方法总结【六】——Dockerfile

评论 抢沙发

评论前必须登录!

 

分享交流,合作共赢!

联系我们加入QQ群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏