intellij-idea 在MacOS上使用Intellij IDEA和Docker桌面时找不到Docker套接字

mqkwyuun  于 2022-11-01  发布在  Mac
关注(0)|答案(1)|浏览(365)

我下载了Docker使用Docker桌面苹果M1芯片。我可以运行容器,与VsCode的集成工作正常,但我不能集成它与Intellij IDEA Ultimate。它一直给出这个错误。x1c 0d1x
但是我可以从终端运行我的容器并创建图像,我也可以在Docker Desktop中看到容器和图像。这背后的原因是什么?我还尝试检查var/run/docker.sock是否存在,它真的不存在,没有这样的文件。
我也在我的第二台电脑上尝试了同样的步骤,完全相同的事情发生了。重现步骤:1-下载Intellij IDEA Ultimate,打开使用Docker的存储库2-下载Mac M1的Docker桌面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

我已经尝试了一切过去2天,但我似乎找不到一个解决方案。

cczfrluj

cczfrluj1#

2022年10月31日编辑

根据Docker Desktop(4.13.1)的最新发行说明,不再需要创建符号链接,引用说明:
默认情况下,在Mac上添加了/var/run/docker.sock符号链接,以提高与tiltdocker-py等工具的兼容性。修复docker/for-mac#6529
现在的官方修复是升级您的Docker Desktop安装。

对于Docker桌面(4.13.0)版本:

  • 默认情况下,Docker不会在主机上创建/var/run/docker.sock符号链接,而是使用docker-desktop CLI上下文。*(请参见:(x、x、e、f、x)

这将阻止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

作为允许IntelliJ连接到Docker的解决方法,您可以使用TCP Socket复选框,并将活动上下文中DOCKER ENDPOINT下显示的值放入Engine API URL中。
此示例的情况为:unix:///Users/<USER>/.docker/run/docker.sock
然后IntelliJ将能够连接到Docker桌面。

黑客选项

另一种让IntelliJ(* 和其他依赖默认配置的组件 *)找到Docker的方法是手动创建一个指向新DOCKER ENDPOINT的符号链接,方法是运行:

sudo ln -svf /Users/<USER>/.docker/run/docker.sock /var/run/docker.sock

这样,在/var/run/docker.sock下查找Docker的所有组件都将找到它。

相关问题