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

 

最新回复(0)
/jishuqbEbRn9HN2p4KJHm_2F0DaCh22bpU0Tvknm3YhlHqcfbk_3D4662606
8 简首页