让Docker for mac监听一个tcp端口

我试图让docker-java( https://github.com/docker-java/docker-java )与Docker for mac一起工作( https://docs.docker.com/docker-for-mac/ ) 。

我如何设置相当于:

DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock"

在Docker的Mac版本上?

如果您使用mactesting版的最后一个docker ,根据问题25064 :

~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux是一个git数据库。

注意:如果~/Library/Containers/com.docker.docker/Data/database/不包含com.docker.driver.amd64-linux ,请转到该database/文件夹,然后执行git reset --hard

守护进程configuration在etc/docker/daemon.jsonetc/docker/daemon.json使用Linuxconfiguration文件中的configuration 。

你需要改变configuration,然后做一个git commit :docker应该在那个时候自动重新启动(如果没有的话,重新启动它)。


正如OP Michael Nelson在评论中提到的那样,在“ Docker for Windows ”(与“Docker for Mac”相关的部分)中有详细介绍。

虚拟机(基于Alpine)使用OpenRC作为其初始系统 。

Docker init脚本依赖于/usr/bin/mobyconfig脚本。
这个mobyconfig脚本要求内核使用com.docker.database标签进行引导,指定configuration文件的位置或保存。

mobyconfig脚本能够检索Docker守护进程的networkinsecure-registryconfiguration,或从/etc/docker/daemon.jsonconfiguration文件。

有一个相关的答案,build议使用socat的解决方法。

它确实可以在networking上公开端口2375:

 socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock 

参考: 在Docker for Mac上访问Docker守护程序远程API