Dockerfile关键字说明
1.本人在使用Dockerfile文件制作镜像过程中踩了不少坑,这里将我总结的一些注意点贴出来,供大家参考。
2.Dockerfile大致格式:
FROM centos:7
MAINTAINER chuan
RUN yum install -y vim
WORKDIR /usr
CMD /bin/bash
3.关键字说明:
- FROM:基于哪个基础镜像
- WORKDIR:指定shell命令运行在哪个目录下。为后续的 RUN、CMD、COPY、ADD 等命令配置工作目录。接下来的 COPY 和 ADD 命令中的相对路径就是相对于 WORKDIR 指定的路径
- COPY:将当前宿主机的文件拷贝到镜像中去(copy的文件必须在build命令最后指定的路径内)
- ADD:和COPY一样,并且还可以解压缩,或者从 url 拷贝文件到镜像中。COPY 和 ADD 命令具有相同的特点:只复制目录中的内容而不包含目录自身。
- RUN:构建镜像时运行的shell命令
- CMD:容器运行时执行的shell命令(多个CMD只有最后一个生效,要想都执行可以使用&&连接多个命令)(如果容器run时,后面指定了shell版本,Dockerfile中的CMD也会被覆盖)
- ENTRYPOINT:和CMD一样,但是可以追加(必须使用exec格式,即:ENTRYPOINT [./entrypoint.sh,参数1,参数2……])
- EXPOSE:指定镜像暴露出来的端口
- VOLUMU:数据容器卷,指定映射文件,用于数据持久化
- ENV:指定环境变量
- LABEL:指定容器运行时标示
- SHELL:指定shell
- MAINTAINER:镜像维护者的姓名和邮箱地址
- ONBUILD:当构建一个父镜像时,父镜像被子镜像继承时,ONBUILD被触发
4.最后生成镜像时:
docker build -t 新镜像名 -f centos\_dockerfile .
最后有个点表示当前目录的centos_dockerfile文件。(如果文件名就是Dockerfile,则直接:docker build -t 新镜像名 .)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。