娜尼的妮妮

导航

Dockerfile 相关用法

1 COPY

   COPY index.html /usr/share/nginx/html/

  

2 CMD

CMD ["top"] # The main purpose of a CMD is to provide defaults for an executing container. 

 

 

 

 

3 WORKDIR

WORKDIR /path/to/workdir

 如果没有指定WORKDIR,默认在./ 目录下工作。指定了WORKDIR但是目录不存在,会自动创建新的目录。如果WORKDIR是绝对路径,会进到指定的路径下,如果是相对路径,会进到上一个目录的相对目录中去。

 

4 ARG

DOCKERFILE中
ARG workuser=nani //设置了默认的值,如果在image build的时候没有赋值,则用默认值

docker build 中加上--build-arg 来传入参数
docker image build -t arg:v1 --build-arg workuser=wawa .

  

5 ENV

 用法和ARG 类似

DOCKERFILE 中
ENV  WELCOME="Welcome here" //设置默认值

docker container run的时候传入参数覆盖默认值
 docker container run    -- env WELCOME=HELLO""    env:v1

  

6 ONBUILD

# Dockerfile
FROM buzybox
ONBUILD RUN echo "this will display in sun image"

根据这个dockerfile build   出一个 baseimage  ,然后基于这个baseimage 创建一个sun image

# Sun Dockerfile
FROM baseimage

用这个dockerfile build image的时候会执行父image中的命令

 ONBUILD 中的命令在当前dockerfile中并不会被执行,只有当前dockerfile编译出的Image被当作父Image的时候,onbuild中的命令才会被触发

 

7 HEALTHCHECK

在dockerfile 中写入HEALTHCHECK, docker run 的时候会自动根据HEALTHCHECK的条件判断docker container 状态是否正常

HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost/  || exit 1
每30秒check一次,超时时间不超过3s

  

8 USER

USER和WORKDIR 用法差不多,用来指定用户

posted on 2021-07-29 16:52  娜尼的妮妮  阅读(54)  评论(0编辑  收藏  举报