Dockerfile手册

前言

一些自己经常用到的Dockerfile知识。Dockerfile就是构建自己的镜像的一个配置文件。

一、各字段用法

1.1、CMD

指定容器运行后的运行命令,通常是一个脚本。

# 设置容器进程为:go run helloworld.go
CMD ["./test.sh"]

1.2、RUN

在镜像中安装软件包或运行命令。镜像构建过程中,多个 RUN 指令可能会生成多个镜像层。为了减小镜像的层数,可以将多个命令组合到一个 RUN 指令中。多个层数会降低性能,所以一般所有命令就放在一个RUN中。\
RUN一般用&&来支持多个命令,支持末尾加个\换行。

# 举例
RUN 命令1 \
    && 命令2 \
    && 命令3

1.3、COPY

和一般的copy使用方法一样。\
用于将本地文件或目录复制到正在构建的 Docker 镜像中的指定位置。\
它是构建镜像时的一项关键操作,允许将主机文件系统上的文件或目录复制到容器镜像中,以供后续在容器内部使用。

# 将当前目录下的所有内容复制到 /app 下
COPY . /app

1.4、WORKDIR

用于设置容器内部的工作目录。这个工作目录是在容器启动后,所有相对路径操作的基础路径。\
也就是说,当你在容器中执行命令时,如果使用了相对路径,那么这些相对路径会以 WORKDIR 指定的目录为起点进行解析。

# 将工作目录设置为 /app
WORKDIR /app

在一个 Dockerfile 中,可以多次使用 WORKDIR 指令来切换工作目录,但请注意,每次使用都会更改容器中的当前工作目录。

1.5、EXPOSE

暴露的容器端口。

# 允许宿主机访问容器的 8000 端口
EXPOSE 8000
THE END