使用 Docker 配置解释器
介绍
PyCharm 与 Docker 的集成使您能够在部署于 Docker 容器中的不同配置的开发环境中运行应用程序。
先决条件
请确保满足以下先决条件:
已安装 Docker,如 Docker 文档 所述。
您可以在不同平台上安装 Docker,但此处我们将使用 Windows 安装。
请注意,您可能希望在不同平台上重复本教程;然后使用适用于 macOS 和 Linux 的 Docker 安装(也提供 Ubuntu 及其他发行版相关的说明)。
您的互联网连接稳定,以便 PyCharm 能够下载并运行
busybox:latest(BusyBox Docker 官方镜像 的最新版本)。 使用 Docker 成功配置解释器后,您即可离线。开始使用 Docker 之前,请确保已启用 Docker 插件。 该插件与 PyCharm 一同捆绑,默认启用。 如果未启用该插件,请在 插件 设置页面  Ctrl+Alt+S 上按 安装插件 中的说明将其启用。
在 设置 对话框(Ctrl+Alt+S )中,选择 ,并在 使用以下方式连接到 Docker 守护进程 下选择 适用于 <your operating system> 的 Docker。 例如,如果您使用 macOS,请选择 适用于 Mac 的 Docker。 有关详细信息,请参阅 Docker 设置。
准备示例
创建 Python 项目QuadraticEquation, 添加 Solver.py 文件,并复制并粘贴以下代码:
将 Docker 配置为远程解释器
现在,让我们定义一个基于 Docker 的远程解释器。
请执行下列任一操作:
点击 Python 解释器选择器 ,并选择 添加新解释器。
按 Ctrl+Alt+S 打开 设置 并导航到 。
点击 Python 解释器选择器 ,并选择 解释器设置。 点击可用解释器列表旁的 添加解释器 链接。
点击可用解释器列表旁的 添加解释器 链接,然后选择 在 Docker 上。
在 Docker 服务器 下拉列表中选择现有的 Docker 配置。
或者,点击
,执行以下步骤以创建新的 Docker 配置:
- 创建 Docker 配置
点击
以添加 Docker 配置,并指定如何连接到 Docker 守护进程。
连接设置取决于您的 Docker 版本和操作系统。 有关更多信息,请参阅 Docker 连接设置。
应在对话框底部出现 连接成功 消息。

有关在 Windows 或 macOS 上使用 Docker 时,将本地路径映射到运行 Docker 守护进程的虚拟机的更多信息,请参阅 Windows 与 macOS 主机的虚拟机路径映射。 无法对映射的本地路径之外的目录使用卷和绑定挂载。
在 Linux 主机上没有此表,在该平台上 Docker 原生运行,您可以将任意目录挂载到容器。
接下来的操作取决于您是希望从 Docker 注册表拉取预构建的镜像,还是从 Dockerfile 在本地构建镜像。
- 拉取 Docker 镜像
选择 拉取或使用现有镜像 ,并在 镜像标记 字段中指定所需镜像的标签。

- 构建 Docker 镜像
选择 构建 ,并根据需要更改 Dockerfile 和 上下文文件夹 字段中的默认值。

如有需要,展开 可选 部分并指定以下内容:
镜像标记
为构建的镜像指定可选的名称和标签。
这有助于在将来引用该镜像。 如果将该字段留空,镜像将只有一个随机的唯一标识符。
构建选项
设置受支持的
docker build选项。例如,您可以使用
--label选项为构建的镜像指定元数据。构建实参
指定构建时变量的值,这些变量在构建过程中可像常规环境变量一样访问,但不会保留在中间或最终镜像中。
这类似于在
docker build命令中使用--build-args选项。这些变量必须在 Dockerfile 中使用
ARG指令进行定义。 例如,您可以为要使用的基础镜像的版本定义一个变量:ARG PY_VERSION=latest FROM python:$PY_VERSION在这种情况下,
PY_VERSION变量默认为latest,除非您将其重新定义为构建时参数,否则 Dockerfile 将生成带有可用最新 Python 版本的镜像。 如果设置PY_VERSION=3.10,Docker 将改为拉取python:3.10,这将运行一个 Python 版本为 3.10 的容器。重新定义
PY_VERSION参数类似于设置以下命令行选项:--build-arg PY_VERSION=3.10您可以提供多个参数,使用空格分隔。
等待 PyCharm 连接到 Docker 守护进程并完成容器检查。

接下来,选择在 Docker 容器中使用的解释器。 您可以选择容器中已配置的任意 virtualenv 或 conda 环境,或选择系统解释器。

点击 确定。
配置好的远程解释器将添加到列表中。
在 Docker 容器中运行应用程序
在装订区域中,在 main 语句旁边,点击 图标,并选择 运行 'solver':

脚本在 运行 工具窗口中启动。 为脚本提供值:

切换到 服务 工具窗口以预览容器详细信息。 展开 容器 节点并选择正在运行的容器。

请注意, 日志 选项卡包含相同的执行结果。
在 Docker 容器中调试应用程序
接下来,让我们调试该应用程序。 为此,请通过点击行号在计算 d 的那一行设置一个断点。 然后在装订区域中点击 ,并选择 。

调试器同样在 Docker 容器中运行:

不过,此时该容器具有不同的 id,因此名称也不同。
总结
让我们总结一下借助 PyCharm 完成的工作:
我们创建了一个项目并添加了一个 Python 脚本。
我们配置了远程解释器。
我们在 Docker 容器中运行并调试了脚本。
最后,我们启动了 Docker 工具窗口,并查看了在 Terminal 中可见的所有详细信息。
有关更多信息,请观看以下视频教程: