Make Docker for mac listen on a tcp port

匿名 (未验证) 提交于 2019-12-03 03:10:03

问题:

I'm trying to get docker-java (https://github.com/docker-java/docker-java) to work with Docker for mac (https://docs.docker.com/docker-for-mac/).

How can I set the equivalent of:

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

On the mac version of Docker?

回答1:

There is a related answer which suggests a workaround using socat.

It does indeed work to expose port 2375 on the network:

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

Reference: Access Docker daemon Remote api on Docker for Mac



回答2:

If you are using the last docker for mac beta, according to issue 25064:

~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux is a git database.

Note: if ~/Library/Containers/com.docker.docker/Data/database/ does not contain com.docker.driver.amd64-linux, go to that database/ folder, and do a git reset --hard.

The daemon configuration is under etc/docker/daemon.json, which just uses the config from the Linux configuration file.

You need to change the config and then do a git commit: docker should restart automatically at that point (if not, restart it) with the new configuration.


As mentioned by the OP Michael Nelson in the comments, and detailed in "Docker for Windows" (which has sections relevant for "Docker for Mac")

The VM (Alpine-based) uses OpenRC as its init system.

The Docker init script relies on a /usr/bin/mobyconfig script.
This mobyconfig script requires the kernel to boot with a com.docker.database label specifying the location of the config file or it bails.

The mobyconfig script is able to retrieve network and insecure-registry configuration for the Docker daemon or pick up a config file from /etc/docker/daemon.json.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!