让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.json
,etc/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守护进程的network
和insecure-registry
configuration,或从/etc/docker/daemon.json
configuration文件。
有一个相关的答案,build议使用socat
的解决方法。
它确实可以在networking上公开端口2375:
socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock
参考: 在Docker for Mac上访问Docker守护程序远程API