DockerFile 中的保留字(指令)说明

FROM

表示新构建的镜像是基于哪个镜像的,指定一个已存在的镜像作为模板。dockerfile中第一条必须是from

MAINTAINER

镜像维护者的姓名和邮箱地址

RUN

容器构建的时候需要运行的命令

有两种格式,shell格式和exec格式

shell格式,RUN 后面直接跟shell命令。例如:RUN yum -y i vim

exec格式,RUN ["可执行文件","参数1","参数2"]。例如:RUN ["./test.sh","dev","open"]

EXPOSE

当前容器对外暴露的端口

WORKDIR

在容器创建之后,终端进入容器后的默认目录

USER

指定该镜像以什么样的用户去执行,如果不指定,默认root

ENV

在构建镜像过程中设置环境变量,语法是 ENV key value

相当于在docker file脚本中定义变量,这个变量可以在当前脚本的后续指令中使用

VOLUME

定义容器数据卷,不了解容器数据卷的可以看这里:点这里 

ADD

将宿主机目录下的文件拷贝到镜像中,并且会自动处理URL 自动解压tar压缩包 

COPY

将宿主机目录下的文件拷贝到镜像中

CMD

指定容器启动后要干的事情,语法格式跟RUN类似,也是有两种形式

dockerfile中可以有多个CMD指令,但只有最后一个生效

CMD会被docker run 之后的参数覆盖掉

例如 docker run -it -p 8888:8888 centos /bin/bash 

后面加了/bin/bash ,就会把docker file中的CMD指令覆盖掉

和RUN指令的区别就是,RUN是在docker build 构建的时候运行,CMD是在docker run 启动的时候运行

ENTRYPOINT

也是用来指定一个容器启动时要运行的命令

类似于CMD,但是不会被覆盖

搭配CMD一起使用时,CMD变成可变参数,可以被docker run时传的参数替换掉

例如: 

ENTRYPOINT ["nginx","-c"]

CMD ["/etc/nginx/nginx.conf"]

直接运行

docker run nginx

相当于nginx -c /etc/nginx/nginx.conf

传参运行

docker run nginx -c /xxx.conf

相当于 nginx -c /xxx.conf

使用dockerfile部署springboot项目案例:点这里

猜你喜欢

转载自blog.csdn.net/qq_41890624/article/details/128364040
今日推荐