Docker for Mac与IntelliJ Docker Integration插件的兼容性问题
笔者在自己的Mac上安装的是Docker for Mac,而不是Docker Toolbox。
这两者最主要的区别在于Docker for Mac用HyperKit作为虚拟化解决方案而不是VirtualBox,相比Docker Toolbox,Docker for Mac更加native些。
Docker for Mac 通过/var/tmp/docker.sock
暴露API。
JetBrains系IDE有一款叫Docker Integration的插件。
当笔者尝试配置此插件时,发现它对Docker for Mac用户不是太友好。而在笔者的另一台安装Docker Toolbox的Mac上却是相当容易的。
当打开配置页,默认的显示结果如图所示,API URL为https://192.168.99.100:2376
。然而这并不起作用,没办法和Docker建立连接。
当我尝试在API URL中随便填入unix:///var/run/docker.sock
,IDE提示如下。
点开More info,会进到这个issue
发现Docker Integration与Docker for Mac的兼容性问题有一个workaround
在命令行输入
brew install socat
安装socat
再输入命令
socat -d -d TCP-L:8099,fork UNIX:/var/run/docker.sock
再在IntelliJ中配置API URL为tcp://localhost:8099
可以看到最终成功连接到docker,如下图所示。
笔者阅读了相关ISSUE,事实上,这个问题并没有真正的解决,只是目前有这么个workaround。