一般文件内容分为五部分:
1.注释部分,类似说明,#开头
2.基础镜像信息:FROM开头
FROM image: tag
3.维护者信息:MAINTAINER开头
MAINTAINER user < user@example.com>
4.构建指令:指定的操作不会在运行的image容器上执行,RUN开头
RUN command
5.设置指令:指定的操作在运行的image容器中执行
1)CMD指令
CMD command param1 param2 ……
如果用户启动容器的时候指定了运行的命令,则会覆盖掉CMD指令
2)CMD配合ENTRYPOINT
CMD [ “-l”]
ENTRYPOINT [ “/usr/bin/ls”]
每个dockerfile中只能有一个ENTRYPOINT,当指定多个时,只有最后一个生效
3)USER(设置container的用户,默认是root用户)
ENTRYPOINT [“memcached”]
USER daemon
4)EXPOSE(指定container需要映射到宿主机的端口)
EXPOSE port < port> …….
5)ENV(用于设置环境变量)
ENV key value
6)ADD(从宿主机src复制文件到container的dest路径)
ADD src dest
7)VOLUME(指定挂载点)
VOLUME [“/tmp/data”]
8)WORKDIR(切换目录)
可以进行多次切换,对RUN,CMD,ENTRYPOINT生效。
WORKDIR /path
9)ONBUILD(在子镜像中执行)
ONBUILDENV [INSTRUCTION]