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 用法差不多,用来指定用户