DockerFile编写
RUN 跟 CMD的区别
RUN是容器运行前需要执行的脚本
CMD是容器运行时才会去执行的脚本,并且脚本运行结束后,容器的生命周期将会结束(如果是阻塞式的不会立即结束)
- COPY和ADD:COPY 一般为当前文件系统的原地址,而ADD不光可以是当前系统原地址,还可以是URL
- EXPORT:报漏一个端口,在运行时可以使用 -P 将这个端口随机映射到一个端口上去
- VOLUME:指定映射文件 ,一般映射到匿名卷 -v
- ENV:指定环境变量 -e ,环境变量
- ARG:是一个构建参数(构建时有效,运行时被销毁),局部变量
ARG的用法 在docker build的时候,可以使用 --build-arg 变量名=值 的方式 覆盖这个局部变量,起到临时修改的作用
ONBUILD的使用
ONBUILD后面的语句 不会在本个镜像中执行,但是当其他镜像是基于本镜像时,在其他镜像的dockerfile执行时,FROM语句之后会加上这条语句 执行
ENTRYPOINT和CMD同时指定时出现的问题
如果ENTRYPOINT的型式不是json型式,则以ENTRYPOINT为准,CMD无效
如果ENTRYPOINT的型式是json型式,则为ENTRRYPOINT和CMD 拼接成一句后的shell语句