Docker 故障排查
JetBrains 正在持续修复并改进 Docker 插件。 您可以在我们的缺陷跟踪系统中查看 已知 Docker 问题及功能请求列表 ,并为对您影响最大的项投票。 您也可以提交自己的问题和功能请求。
如果遇到以下问题之一,请尝试相应的推荐解决方案:
- 无法从 GoLand 连接到 Docker 守护进程
请确保:
如需了解更多信息,请参阅 Docker 连接设置。
- 无法使用 Docker Compose 运行多容器应用
请确保在 设置 对话框 Ctrl+Alt+S 中的 下正确指定了 Docker Compose 可执行文件。 如需了解更多信息,请参阅 Docker 连接设置。
- 在 Ubuntu 上通过 Unix socket 设置运行 Docker Compose 无效
在 Ubuntu 上运行 Docker Compose 时,您会看到以下错误消息:
docker.errors.TLSParameterError: Path to a certificate and key files must be provided through the client_config param. TLS configurations should map the Docker CLI client configurations.在此情况下,请在 Engine API 地址 字段中使用 TCP 套接字 连接方式,并设置
unix:///var/run/docker.sock。 如需了解更多信息,请参阅 TCP 套接字 。- 无法使用端口绑定
请确保已暴露相应的容器端口。 请在您的 Dockerfile 中使用 EXPOSE 指令。
- 无法从镜像仓库拉取镜像
当您尝试从镜像仓库拉取 Docker 镜像时,会出现以下消息:
Failed to parse dockerCfgFile: <your_home_dir>/.docker/config.json, caused by: ... {"credsStore":"wincred"}在此情况下,请转到 <your_home_dir>/.docker 目录并删除 config.json 文件。
- 无法将 Dockerfile 和 Docker Compose 文件关联至正确的类型
默认情况下,GoLand 可通过文件名和内容识别 Dockerfile 与 Docker Compose 文件。 这将启用这些文件的各种代码辅助功能,如补全建议、检查与侧边图标。 如果 GoLand 无法识别文件,则会提示您手动指定文件类型。 要将已有文件关联到正确的类型,请在 项目 工具窗口中右键点击该文件,然后从上下文菜单中选择 与文件类型关联…。
如果操作 与文件类型关联… 被禁用,可能是因为该文件名已注册为其他文件类型的匹配模式。 例如,如果您拥有一个使用自定义名称的 Dockerfile,且其被识别为文本文件,则无法将其关联为 Dockerfile 类型。 要移除该文件类型匹配模式,请执行以下操作:
按 Ctrl+Alt+S 打开设置,然后选择 。
选择相关的文件类型(此处为: 文本 ),并删除包含该文件名的模式。
点击 确定(O) 应用更改。
现在,您应该可以在上下文菜单中使用 与文件类型关联… 设置正确的文件类型。
- 通过服务连接 Docker 时 CPU 占用率高
如果您在 Windows 上使用 Hyper-V 作为 Docker 服务的后端,杀毒软件会不断扫描 Hyper-V 虚拟磁盘文件( .vhdx ),即使没有容器运行也会导致 CPU 占用率过高。
在此情况下,请将 Hyper-V 虚拟磁盘文件排除在杀毒软件的扫描之外。