dockerfile文件中命令详解

FROM:指定基础镜像,比如你要创建一个springboot项目的镜像,那么就需要jre作为基础镜像;

查找需要的基础镜像的方法:docker serch xxxx  或者去docker hub上查找;

RUN:构建容器运行的命令,格式有两种:

1)RUN ['execuable','param1','param2']

2)RUN <command>

CMD:容器启动时要执行的命令

CMD["SH","-c","echo $HOME"]

CMD command param1 parma2 

第一中格式的命令,参数都用双引号

MAINTAINR:指定作者,就是这个dockerfile是谁编写的;

EXPOSE:暴露容器运行时的监听端口给外部;

ENV:设置环境变量 ;

语法有两种:ENV <key> ..<value>   只能设置一个值

ENV <key>=<value>.....   可以设置多个值

ADD:一个复制命令,把文件复制到镜像中:

命令格式: ADD <src> <src>

ADD ["<src>",...."<dest>"]

<dest>路径的填写可以是容器内的绝对路径,也可以是相对于工作的目录的相对路径

<src> 可以是一个本地的文件或者压缩包,还可以是一个url

COPY:  COPY与ADD一致,唯一的区别就是<src>只能是本地的文件 

ENTRYPOINT:与CMD命令很像,都是在容器启动时执行命令,但是与CMD还是有一些区别:

相同点:

只能写一条,如果写了多条,那么只有最后一条生效

启动容器才执行

不同点:

ENTRYPOINT不会被Command覆盖,CMD会被覆盖;

但是如果docker run 的-entrypoint会覆盖ENTRYPOINT命令

任何docker run 设置的命令参数或CMD指令命令,都将作为ENTRYPOINT指令的命令参数,追加到ENTRYPOINT指令的命令之后

例如:

ENTRYPOINT ["top","-b", "-H"]

在执行docker run <container-name> -v 启动容器则容器执行的命令就是 top -b -v

VOLUME:挂载目录;

将本地文件夹或者其他容器的文件夹挂载到当前容器下

语法: volume ["/data"]

使用场景一般是需要持久化数据,比如数据库;

WORKDIR:设置工作目录;

WORKDIR /path/dir

猜你喜欢

转载自blog.csdn.net/qiuhao9527/article/details/81079676