den*_*se8 43 macos intellij-idea docker docker-compose docker-desktop
我使用适用于 Apple M1 芯片的 Docker Desktop 下载了 Docker。我可以运行容器,与 VsCode 的集成工作正常,但我无法将其与 Intellij IDEA Ultimate 集成。它一直给出这个错误。

但我可以从终端运行容器并创建映像,我还可以在 Docker Desktop 中看到容器和映像。这背后的原因可能是什么?我还尝试检查 var/run/docker.sock 是否存在,但实际上不存在,没有这样的文件。
我也在我的第二台计算机上尝试了相同的步骤,并且发生了完全相同的事情。重现步骤: 1- 下载 Intellij IDEA Ultimate,打开使用 docker 的存储库 2- 下载 Docker Desktop for Mac M1 3- 尝试将 Docker 服务添加到 Intellij
我没有做任何其他事情,因为我认为 Docker Desktop 足以配置 Mac 上的所有内容。我尝试在 intellij 上运行 FT,但出现错误
[main] ERROR o.t.d.DockerClientProviderStrategy - Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
[main] ERROR o.t.d.DockerClientProviderStrategy - UnixSocketClientProviderStrategy: failed with exception InvalidConfigurationException (Could not find unix domain socket). Root cause NoSuchFileException (/var/run/docker.sock)
[main] ERROR o.t.d.DockerClientProviderStrategy - DockerMachineClientProviderStrategy: failed with exception ShellCommandException (Exception when executing docker-machine status ). Root cause InvalidExitValueException (Unexpected exit value: 1, allowed exit values: [0], executed command [docker-machine, status, ], output was 122 bytes:
Docker machine "" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.)
[main] ERROR o.t.d.DockerClientProviderStrategy - As no valid configuration was found, execution cannot continue
Run Code Online (Sandbox Code Playgroud)
过去两天我一直在尝试一切,但似乎找不到解决方案。
cam*_*ler 65
已编辑 2022-10-31
Docker Desktop (4.13.1) (及以下版本)的发行说明指出,无需再创建符号链接,引用说明:
默认情况下在 Mac 上添加了
/var/run/docker.sock符号链接,以提高与tilt和 等工具的兼容性docker-py。修复docker/for-mac#6529。
现在的官方修复是升级您的 Docker Desktop 安装。
对于 Docker Desktop (4.13.0) 版本:
默认情况下,Docker 不会在主机上创建 /var/run/docker.sock 符号链接,而是使用 docker-desktop CLI 上下文。(参见: https: //docs.docker.com/desktop/release-notes/)
这将阻止 IntelliJ 使用默认上下文查找 Docker。
您可以通过运行查看计算机中的当前上下文docker context ls,这应该产生如下输出:
NAME TYPE DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
default moby Current DOCKER_HOST based configuration unix:///var/run/docker.sock https://kubernetes.docker.internal:6443 (default) swarm
desktop-linux * moby unix:///Users/<USER>/.docker/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
作为允许 IntelliJ 连接到 Docker 的解决方法,您可以使用TCP 套接字复选框,并将活动上下文中显示的值放入引擎 API URL中。DOCKER ENDPOINT
此示例的情况是:unix:///Users/<USER>/.docker/run/docker.sock
然后 IntelliJ 将能够连接到 Docker Desktop。
已编辑 2023-07-17
如果“设置 > 高级 > 允许使用默认 Docker 套接字”中的选项已启用并且套接字不可用,请尝试禁用它并重新启用它。
让 IntelliJ(以及其他依赖默认配置的组件)找到 Docker 的另一种方法是DOCKER ENDPOINT通过运行以下命令手动创建新的符号链接:
sudo ln -svf /Users/<USER>/.docker/run/docker.sock /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
这样所有在下面寻找 Docker 的组件/var/run/docker.sock都会找到它。
Dwi*_*igt 31
我正在运行 Docker Desktop v4.18.0,我通过以下方式解决了这个问题
AdvancedEnable default Docker socket。这个选项下面有一个解释说:Creates /var/run/docker. sock which some third-party clients may use to communicate with Docker Desktop.Apply & restart并再次尝试运行由于某种原因,更新 macOS docker 版本后,\xe2\x80\x99 不再创建 /var/run/docker.sock 文件。创建符号链接是一种老套的方法,不推荐。
\n我的解决方案是设置 $DOCKER_HOST 环境变量:
\nexport DOCKER_HOST=unix:///Users/<USER>/.docker/run/docker.sock\nRun Code Online (Sandbox Code Playgroud)\n或将其添加到 .zshrc:
\necho "export DOCKER_HOST=unix:///Users/<USER>/.docker/run/docker.sock" >> ~/.zshrc\nRun Code Online (Sandbox Code Playgroud)\n或将其添加到 IntelliJ 运行配置中。
\n我在使用 Testcontainers 时遇到了这个问题,您也可以通过编辑 ~/.testcontainers.properties 来修复该问题:
\ncat .testcontainers.properties\n#Modified by Testcontainers\n#Mon May 29 11:42:37 EEST 2023\ndocker.client.strategy=org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy\ntestcontainers.reuse.enable=true\ndocker.host=unix\\:///Users/<USER>/.docker/run/docker.sock\nRun Code Online (Sandbox Code Playgroud)\n编辑文档:
\nhttps://www.testcontainers.org/features/configuration/
\n\n\n自定义 Docker 主机检测 测试容器将尝试检测 Docker 环境并将所有内容配置为自动运行。
\n然而,有时需要定制。测试容器将\n尊重以下环境变量:
\nDOCKER_HOST = unix:///var/run/docker.sock 查看 Docker 环境\n变量
\nTESTCONTAINERS_DOCKER_SOCKET_OVERRIDE Docker 套接字的路径。由\nRyuk、Docker Compose 和其他一些需要执行\nDocker 操作的容器使用。示例:/var/run/docker-alt.sock
\nTESTCONTAINERS_HOST_OVERRIDE 公开端口的 Docker 主机。\n示例: docker.svc.local
\n
| 归档时间: |
|
| 查看次数: |
29176 次 |
| 最近记录: |