Docker 镜像
Docker 镜像是用于运行容器的可执行包。 Docker 使用 注册表 分发镜像。 默认情况下,PyCharm 使用 Docker Hub ,它是一个公共注册表,包含各种常见镜像,例如各种 Linux 发行版、数据库管理系统、Web 服务器以及运行时环境。 还有其他公共和私有的 Docker 注册表,您也可以部署自己的注册表服务器。 如需详细信息,请参阅 配置 Docker 注册表。
启用 Docker 插件
此功能依赖于 Docker 插件,默认情况下 PyCharm 已捆绑并启用该插件。 如果相应功能不可用,请确保未禁用该插件。
按 Ctrl+Alt+S 打开设置,然后选择 。
打开 已安装 选项卡,找到 Docker 插件,然后选中插件名称旁的复选框。
要在 PyCharm 中管理 Docker 镜像,请打开 服务 工具窗口( 或 Alt+8 ),展开已配置的 Docker 连接节点 ,然后展开 镜像 节点。 如需详细信息,请参阅 镜像。
根据您的开发需求,您可以使用 Docker 执行以下操作:
例如,您可以拉取一个运行 Django 服务器容器的镜像,以测试您的应用如何与生产环境交互。
例如,您可以构建一个镜像,运行一个包含应用所需特定版本 Python 的容器。
例如,如果您希望在不搭建相应环境的情况下向他人演示您的应用如何在特定版本的 JRE 上运行,他们可以从您的镜像运行一个容器。
配置 Docker 注册表
在 服务 工具窗口中,点击
,然后选择 Docker 注册表…。

在 新建Docker 注册表 对话框中,选择注册表类型以及连接到该注册表的方式。 当您指定凭据时,PyCharm 将自动检查与注册表的连接。 应在对话框底部显示 连接成功 消息。
如需详细信息,请参阅 Docker 注册表设置。

您可以在 服务 工具窗口中查看已配置的 Docker 注册表。

或者,您可以在 Docker 注册表设置 中管理已配置的 Docker 注册表列表。
从 Docker Hub 拉取公共镜像
在 服务 工具窗口( 或 Alt+8 )中,选择 镜像 节点。
选择 Docker 注册表 ,并指定存储库和标签(镜像的名称和版本,例如
tomcat:latest)。
按 Ctrl+Enter 以运行 docker pull。
像在 Docker CLI 中一样指定镜像,例如: ubuntu:20.04。
从 Docker 注册表拉取镜像
如果您希望在 Docker Hub 或其他 Docker 注册表中使用私有镜像,请 配置 Docker 注册表连接。
在 服务 工具窗口( 或 Alt+8 )中,展开所需 Docker 注册表的节点,右键点击所需的镜像,然后选择 拉取镜像…。

从 Dockerfile 构建镜像
编辑 Dockerfile 或 Containerfile 时,PyCharm 会为来自 已配置的注册表 的镜像提供 补全。
打开要用于构建镜像的 Dockerfile 或 Containerfile。
在装订区域中点击
,然后选择构建镜像。

PyCharm 会创建一个 Dockerfile 运行配置 来运行 docker build 命令。
将镜像推送到 Docker 注册表
您可以将镜像推送到 已配置的 Docker 注册表。
在 服务 工具窗口中,选择要上传的镜像,并在工具栏或 仪表板 中点击
,或者从上下文菜单中选择 推送镜像…。
选择 Docker 注册表 ,并指定存储库和标签(镜像的名称和版本,例如
my-app:v2)。
点击 确定(O) 以运行 docker push 命令。
将镜像复制到另一个 Docker 守护进程
如果您有多个 Docker 守护进程连接,您可以将镜像从一个 Docker 守护进程复制到另一个。
在 服务 工具窗口中,选择要复制的镜像,然后点击
,或从上下文菜单中选择 复制Docker 镜像。
在 复制Docker 镜像 对话框中,选择要将镜像复制到的 Docker 守护进程,然后点击 复制。
这将首先运行 docker save 命令,将当前 Docker 守护进程中的镜像保存为文件,然后运行 docker load 命令,从目标 Docker 守护进程上的该文件加载镜像。
在服务工具窗口中管理 Docker 镜像
在相应的 Docker 守护进程连接的 镜像 节点下,PyCharm 会在 服务 工具窗口中列出您本地拉取或构建的所有镜像。 如需详细信息,请参阅 镜像。
选择一个镜像以查看其名称、ID、大小、标签、上次更改日期以及正在使用该镜像的容器。 您可以从所选镜像创建新容器、将镜像推送到已配置的 Docker 注册表,或查看该镜像使用的层。 点击 可查看更多操作:将镜像 ID 复制到剪贴板、运行 docker image inspect 命令,或显示应用于该镜像的 labels。

没有标签的镜像 <none>:<none> 可能属于以下之一:
作为其他镜像的层且不占用任何空间的 中间镜像。
当您基于另一个镜像的较新版本重建镜像时遗留的 悬空镜像。 您应定期清理悬空镜像以节省磁盘空间。
要在列表中隐藏没有标签的镜像,请在 Docker 工具栏上点击 ,并取消选中 无标记的镜像。
要删除一个或多个镜像,请在列表中选中它们,然后点击 。
浏览 Docker 镜像
在 服务 工具窗口中,在 镜像 下选择您感兴趣的镜像。
在 仪表板 选项卡中,点击 显示层。
层 选项卡显示构成该镜像的所有层,以及每层的详细信息。 点击 分析镜像以获得更多信息 以收集详细信息,包括对该镜像文件系统所做的更改。
如果 PyCharm 支持此文件类型,您可以在镜像的某一层中双击或右键点击任意文件,在编辑器中打开其副本;如果 PyCharm 不支持此文件类型,您可以将该文件的副本下载到本地文件系统。
