Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。本节内容参考链接。
下面所示是一个基本的Dockerfile示例:
1 | FROM ros:kinetic-perception |
FROM
指令用于指定构建的镜像所依赖的基础镜像文件,实例中设置为ros:kinetic-perception
RUN
指令用于执行后面跟着的命令行命令
ENV
指令用于设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量
COPY
指令用于从上下文目录中复制文件或者目录到容器里指定路径
WORKDIR
指令用于指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。WORKDIR
指定的工作目录,必须是提前创建好的。docker build 构建镜像过程中的,每一个 RUN 命令都是新建的一层。只有通过 WORKDIR
创建的目录才会一直存在。
注意:Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大。例如:
1 | FROM centos |
使用以下命令,根据当前路径下的Dockerfile构建名为my-ros
的镜像:
1 | docker build -t my-ros . |