dockerfile 简介

Dockerfile

Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。

常用命令

命令作用
FROM image_name:tag 定义使用哪个基础镜像启动构建流程
MAINAINER user_name 声明镜像的创作者
ENV key value 配置环境变量
RUN command 执行命令
ADD source_dir/file dest_dir/file 将宿主机的文件复制到容器内,如果是压缩文件,会在复制后自动解压
COPY source_dir/file dest_dir/file 和ADD命令一样,但不会自动解压缩文件
WORKDIR path_dir 设置工作目录
CMD 容器启动以后,默认的执行的命令
ENTRYPOINT 用于定义容器启动以后的执行体,也就是容器的入口

CMD和ENTRYPOINT 区别

CMD给出的是一个容器的默认的可执行体。也就是容器启动以后,默认的执行的命令。

如果docker run没有指定任何的执行命令或者dockerfile里面也没有ENTRYPOINT,那么,就会使用CMD指定的默认的执行命令执行。

CMD的三种用法:

The CMD instruction has three forms:

CMD ["executable","param1","param2"] (exec form, this is the preferred form)
CMD ["param1","param2"] (as default parameters to ENTRYPOINT)
CMD command param1 param2 (shell form)

当存在ENTRYPOINT时,CMD命令会被覆盖,也就是说entrypoint才是正统地用于定义容器启动以后的执行体的

ENTRYPOINT has two forms:

ENTRYPOINT ["executable", "param1", "param2"] (exec form, preferred)
ENTRYPOINT command param1 param2 (shell form)

如果RUN命令后面有东西,那么后面的全部都会作为ENTRYPOINT的参数。如果RUN后面没有额外的东西,但是CMD有,那么CMD的全部内容会作为ENTRYPOINT的参数,这同时是CMD的第二种用法。

ADD和COPY命令的区别

  1. ADD在复制后可以对压缩文件自动解压缩

  2. ADD命令除了可以复制宿主机文件,还可以从远程复制资源到容器内(ADD指令不支持认证,远程获取资源推荐使用RUN wget 或者 RUN curl)

posted @ 2021-12-17 10:24  会飞的猿  阅读(84)  评论(0编辑  收藏  举报