# Docker 容器

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

Docker 容器是对应镜像的运行时实例。 IntelliJ IDEA 使用 [Docker 运行配置](docker-run-configurations.html) 执行构建 Docker 镜像和运行容器的命令。

Procedure: 启用 Docker 插件

此功能依赖于 [Docker](https://plugins.jetbrains.com/plugin/7724-docker) 插件，该插件在 IntelliJ IDEA 中默认捆绑并启用。 如果相关功能不可用，请确保您没有禁用插件。

> **Note:**
> Docker 插件默认仅在具有 Ultimate 订阅的 IntelliJ IDEA 中可用。 对于 IntelliJ IDEA，您需要按照 [插件](managing-plugins.html) 中的说明安装 Docker 插件。

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `插件` 。

2. 找到  Docker  插件并点击   启用  。

Procedure: 从已有镜像运行容器

您可以从任意本地现有的 Docker 映像运行一个容器，无论该映像是之前 [pulled](docker-images.html#pull-image)还是 [built](docker-images.html#build-image)的。

1. 在   服务  工具窗口中，选择一个图像并点击 ![创建容器按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.general.add.svg)或从上下文菜单中选择   创建容器  。

2. 在   创建容器  弹出窗口中，点击   创建…  。

> **Tip:**
> 如果您已经有针对该镜像的 Docker 运行配置，那么   创建容器  弹窗也会将该运行配置的名称作为一个选项。

3. 在打开的   创建 Docker 配置  对话框中，您可以为该配置提供一个唯一名称并指定容器的名称。 如果您将   容器名称   字段留空，Docker 会为其提供一个随机唯一的名称。

4. 完成后，点击   运行  以启动新配置。

这将创建并启动 [Docker 映像运行配置](docker-image-run-configuration.html)。

Procedure: 从 Dockerfile 运行容器

1. 打开您想要运行容器的 Dockerfile。

2. 点击 ![在 Docker 上运行](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.gutter.rerun.svg) 图标，然后选择从此 Dockerfile 运行容器。

![Docker 上运行弹出窗口](https://resources.jetbrains.com/help/img/idea/2026.3/56_DockerfileRun.png)

这将按照默认设置创建并启动 [Dockerfile 运行配置](dockerfile-run-configuration.html)，首先根据 Dockerfile 构建镜像，然后基于该镜像运行容器。

要使用自定义设置创建运行配置，请点击 左侧栏 中的 ![在 Docker 上运行](https://resources.jetbrains.com/help/img/idea/2026.3/app.actions.rerun.svg) 并选择   新建运行配置…  。 您可以为构建的镜像指定一个自定义标签，还可以为容器指定一个名称，并指定一个用于读取 Dockerfile 的上下文文件夹。 上下文文件夹是有用的，例如，如果您有一些在 Dockerfile 范围之外的构件，您希望将这些构件添加到镜像的文件系统中。

> **Tip:**
> 您也可以右键点击   项目   工具窗口中的 Dockerfile 来从中运行一个容器。

## 与容器交互

创建的容器将列在   [服务](services-tool-window.html#docker)  工具窗口中。 默认情况下，   服务   工具窗口会显示所有容器，包括那些未运行的容器。 若要在列表中隐藏已停止的容器，请在工具栏中点击 ![视图选项按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.general.show.svg)，选择   Docker  ，然后点击   已停止容器   取消选中复选框。

![服務 工具窗口 - Docker - 过滤器](https://resources.jetbrains.com/help/img/idea/2026.3/services_tool_window_docker_filter.png)

当您选择一个容器时，您可以查看   构建日志   选项卡，该选项卡显示了相应的 [Docker run configuration](docker-run-configurations.html) 在创建和启动容器时生成的部署日志。

![在服务工具窗口中选择的容器的构建日志选项卡](https://resources.jetbrains.com/help/img/idea/2026.3/docker-container-build-log-tab.png)

仪表板   选项卡提供有关容器的重要信息。 除了名称和散列 ID，还列出了环境变量、端口和卷绑定。 您可以添加、编辑和删除环境变量、端口和卷绑定。 但是，这些更改需要您重新创建容器，并且不会更改用于创建此容器的 [Docker run configuration](docker-run-configurations.html)。 这意味着当您下次运行该配置时，更改将不会持久保存。

![服务工具窗口中选定容器的Dashboard标签](https://resources.jetbrains.com/help/img/idea/2026.3/docker-container-dashboard.png)

有关更多信息，请参见 [容器仪表板](services-tool-window.html#docker-container-dashboard)。

Procedure: 在运行的容器内执行命令

1. 在   服务   工具窗口中，右键点击容器名称，然后点击   执行  。

2. 在   在容器中运行命令  弹窗中，点击   创建并运行…  创建并执行新命令。

或者，您可以选择一个之前运行过的命令。

3. 在   执行  对话框中，输入命令并点击   OK  。 例如：

|   `ls /tmp`   |     列出  `/tmp`  目录的内容     |
|   `mkdir /tmp/my-new-dir`   |     在  `my-new-dir` 目录内创建  `/tmp` 目录     |
|   `/bin/bash`   |  开始  `bash` 会话  |

![Exec 选项卡，正在运行 /bin/bash](https://resources.jetbrains.com/help/img/idea/2026.3/67_DockerExecBinBash_1.png)

如需更多信息，请参阅 [docker exec](https://docs.docker.com/engine/reference/commandline/exec/)命令参考。

Procedure: 查看有关运行中容器的详细信息

* 在   服务   工具窗口中，右键点击容器名称，然后点击   检查  。

输出在   检查  选项卡上呈现为 JSON 对象。

![检查选项卡](https://resources.jetbrains.com/help/img/idea/2026.3/68_DockerInspect.png)

如需了解更多信息，请参阅 [docker inspect](https://docs.docker.com/engine/reference/commandline/inspect/)命令参考。

Procedure: 查看容器中运行的进程

* 在   服务   工具窗口中，右键点击容器名称，然后点击   显示进程  。

输出在   进程  标签上呈现为一个 JSON 数组。

有关更多信息，请参阅 [docker top](https://docs.docker.com/engine/reference/commandline/top/)命令参考。

Procedure: 将控制台附加到容器输出

* 在   服务  工具窗口中，右键点击容器，然后点击   附加  。

控制台附加到在容器内运行的 [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) 进程的输出，并在   附加控制台   选项卡上呈现。

详情请参阅 [docker attach](https://docs.docker.com/engine/reference/commandline/attach/) 命令参考。

Procedure: 浏览容器中的文件

1. 在   服务  工具窗口中，右键点击容器，然后点击   显示文件  。

2. IntelliJ IDEA [执行](#execute-command)  `ls`  命令，并打开带有容器文件系统的   文件   选项卡。

在   文件  选项卡上，您可以双击任何文件在编辑器中查看。 IntelliJ IDEA 以只读模式打开文件，因此您无法编辑或删除它。

> **Note:**
> 浏览文件不适用于没有完整  `ls` 包的容器（例如，基于 Alpine、Photon 和 BusyBox 的镜像）。 对于此类容器，请在 Dockerfile 中添加相应的命令，以便镜像安装必要的包，例如：
>
>
>
>
> ```DOCKERFILE
> FROM alpine:3.10
> RUN apk add coreutils
>
> ```
>
>
>
>
> ```DOCKERFILE
> FROM photon:3.0
> RUN echo y | tdnf remove toybox
>
> ```

## 在容器中处理项目文件

可以在 Docker 容器中打开项目，也可以查看最近打开的项目。

![打开项目](https://resources.jetbrains.com/help/img/idea/2026.3/container_open_project.png)

Procedure: 在容器中打开项目

1. 打开包含  `Dockerfile`  的项目。

2. 打开  `Dockerfile` ，然后在左侧装订区域中点击 ![在 Docker 上运行](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.actions.runAll.svg)，以在 Docker 上运行项目。

3. 在   服务  工具窗口中，右键点击容器，然后点击   打开项目 | 选择目录  。

或者，在  `日志`  选项卡上，点击   打开项目  。

4. 在打开的窗口中，选择要打开的目录，然后点击   OK  。

5. 选择项目的打开位置，并确认信任该项目。 项目将打开，可以继续使用。

Procedure: 在容器中打开最近的项目

* 在   服务   工具窗口中，右键点击容器，点击   打开项目 | 最近的项目  ，然后选择要打开的项目。

或者，在  `日志`  选项卡上，点击   打开项目   下拉菜单，然后点击   最近的项目  。 然后选择要打开的项目。

最近项目文件列表也会显示在 IDE 欢迎屏幕上，即使主 Docker 项目已关闭，也可以打开该列表。

![最近的项目](https://resources.jetbrains.com/help/img/idea/2026.3/welcome_screen_recent_projects.png)

## SELinux 上的绑定挂载

如果主机使用了 [SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux)，该安全模块可能会阻止在容器内运行的进程访问已挂载的文件和目录。 为了避免这种情况，请使用  `:z`  选项标记挂载的文件和目录。 如需更多信息，请参阅 [Configure the SELinux label](https://docs.docker.com/storage/bind-mounts/#configure-the-selinux-label)。

当运行 Docker 容器时，IntelliJ IDEA 可以自动将  `:z`  标志添加到主机上的所有卷绑定中，顶级目录（如  `/bin` ）除外。

> **Warning:**
> 这可能会对访问这些绑定挂载的 Docker 容器之外的安全产生影响。 请确保您 [了解后果](https://github.com/moby/moby/issues/30934)。

Procedure: 为绑定挂载应用 SELinux 标签

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `高级设置 | Docker` 。

2. 选择   将 :z 挂载选项应用于 SELinux 系统的几乎所有绑定卷。  。

![适用于 SELinux 系统的绑定](https://resources.jetbrains.com/help/img/idea/2026.3/docker_selinux_advsetting.png)

