IntelliJ IDEA 2025.1 Help

Dockerfile 运行配置

使用此类配置从 Dockerfile 构建映像,然后从此映像派生一个容器。

Dockerfile 运行配置对话框

Docker 使用 docker build 命令从 Dockerfile 构建镜像,然后使用 docker run 命令从中启动容器。

默认情况下, Dockerfile 配置具有以下选项:

条目

描述

名称(N)

在编辑或运行时,指定运行配置的名称以便快速识别。

存储为项目文件(S)

将运行配置设置的文件保存下来,与其他团队成员共享。 默认位置是 .idea/runConfigurations 。 但是,如果您不想共享 .idea 目录,您可以将配置保存到项目内的任何其他目录。

默认情况下,它是禁用的,并且 IntelliJ IDEA 将运行配置设置存储在 .idea/workspace.xml

服务器

请选择要用于运行配置的 Docker daemon connection

Dockerfile

指定用于构建镜像的 Dockerfile 的名称和位置。

镜像标记

为生成的镜像指定一个可选名称和标签。

这对将来参考图像会有所帮助。 如果您将该字段留空,图像将只有一个随机唯一标识符。

容器名称

指定容器的可选名称。 如果为空,Docker 会为容器生成一个随机名称。

这类似于使用 --name 选项与 docker run 命令。

执行前(B)

指定在开始运行配置之前要执行的任务列表。 例如,运行另一个配置,构建必要的 artifact,运行一些外部工具或 web 浏览器,等等。

点击 "添加"按钮 或按 Alt+Insert 来添加一个可用任务。

在列表中使用 向上按钮向下按钮 移动任务,以更改执行任务的顺序。 选择一个任务并点击 编辑按钮 编辑该任务。 请点击 "移除"按钮 从列表中删除所选任务。

显示此页面

在实际启动之前显示运行配置设置。

激活工具窗口

根据配置类型,在启动此 run configuration 时打开 运行调试服务工具窗口。 如果此选项被禁用,您可以手动打开工具窗口:

  • 视图(V) | 工具窗口 | 运行Alt+4

  • 视图(V) | 工具窗口 | 调试Alt+5

  • 视图(V) | 工具窗口 | 服务Alt+8

使用 修改选项(M) 菜单向运行配置添加高级选项:

条目

描述

上下文文件夹

在构建过程中,指定 daemon 将使用的本地目录。 Dockerfile 中的所有主机路径将相对于此目录进行处理。 默认情况下,如果您将其留空,Docker 会使用 Dockerfile 所在的同一目录。

构建实参

指定构建时变量的值,这些变量在构建过程中可以像常规环境变量一样访问,但不会在中间或最终镜像中持久存在。

这类似于使用 --build-args 选项与 docker build 命令。

这些变量必须通过 ARG 指令在 Dockerfile 中定义。 例如,您可以为即将使用的基础镜像版本定义一个变量:

ARG PGTAG=latest FROM postgres:$PGTAG

在这种情况下, PGTAG 变量将默认为 latest ,并且 Dockerfile 将会生成一个具有最新可用版本 PostgreSQL 的镜像,除非您将其重新定义为构建时参数。 如果您设置, PGTAG=9 ,Docker 将拉取 postgres:9 ,这将运行一个 PostgreSQL 版本 9 的容器。

PGTAG 参数重新定义类似于设置以下命令行选项:

--build-arg PGTAG=9

您可以提供用空格分隔的多个参数。

构建选项

设置支持的 docker build 选项

例如,您可以使用 --label 选项为构建的镜像指定元数据。

随机发布所有暴露端口

将所有暴露的容器端口发布到主机上的随机空闲端口。

这类似于在命令行上使用 -P--publish-all 选项。

绑定端口

将特定的容器端口映射到主机上的特定端口。

这类似于在命令行上使用 -p--publish 选项。

点击 浏览 ,在 绑定端口 字段中指定主机上的哪些端口应映射到容器中的哪些端口。 您还可以提供一个特定的主机 IP,使端口可访问(例如,您可以将其设置为 127.0.0.1 以使其仅在本地可访问,或者将其设置为 0.0.0.0 以对网络中的所有计算机开放)。

假设您已经在主机端口 5432 上运行了 PostgreSQL,并且您想在容器中运行另一个 PostgreSQL 实例,并通过端口 5433 从主机访问它。 将主机端口 5433 绑定到容器中的端口 5432 类似于设置以下命令行选项:

-p 5433:5432

您可以在 运行选项 字段中显式设置此选项,而不是配置 绑定端口 字段。

入口点

覆盖图像的默认 ENTRYPOINT

这类似于在命令行中使用 --entrypoint 选项。

命令

覆盖图像的默认 CMD

这类似于将命令作为参数添加到 docker run

绑定挂载

将主机上的文件和目录挂载到容器中的特定位置。

这类似于在命令行上使用 -v--volume 选项。

点击 浏览 字段中的 绑定挂载 ,然后指定主机目录及其在容器中应挂载的位置路径。 如果您想要禁用写入容器卷,请选择 只读

例如,您可以将本地 PostgreSQL 目录挂载到主机上的某个目录 ( /Users/Shared/pg-data ),以挂载到容器内的某个目录 ( /var/lib/pgsql/data )。 以这种方式挂载卷类似于设置以下命令行选项:

-v /Users/Shared/pg-data:/var/lib/pgsql/data

您可以在 运行选项 字段中显式设置此选项,而不是配置 绑定挂载 字段。

环境变量

指定环境变量。 您所使用的基础镜像相关的环境变量是由 ENV 指令在 Dockerfile 中定义的。 每个新容器还有 Docker 自动设置的环境变量。 请使用此字段覆盖任何变量或指定额外的变量。

这类似于在命令行上使用 -e--env 选项。

点击 浏览环境变量 字段中添加变量的名称和值。

例如,如果您希望默认使用特定用户名连接到 PostgreSQL(而不是运行应用程序的用户的操作系统名称),您可以将 PGUSER 变量设置为必要的值。 这类似于设置以下命令行选项:

--env PGUSER=%env-var-value

您可以在 运行选项 字段中显式设置此选项,而不是配置 环境变量 字段。

运行选项

设置任何其他支持的 docker run选项。

例如,要将容器连接到 my-net 网络并为其设置 my-app 别名,请指定以下内容:

--network my-net --network-alias my-app

附加到容器

附加到容器的标准输入、输出和错误流。

这类似于在命令行上使用 -a--attach 选项。

显示命令预览

预览将用于执行运行配置的命令。

最后修改日期: 2025年 4月 24日