使Docker for mac侦听tcp端口

Mic*_*son 7 macos docker

我正在尝试使用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版本?

Mar*_*ani 8

有一个相关的答案建议使用解决方法socat.

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

socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)

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


Von*_*onC 3

如果您使用的是最新的 docker for mac beta,根据问题 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.

守护进程配置位于下面,它仅使用Linux 配置文件etc/docker/daemon.json中的配置。

您需要更改配置,然后执行以下操作git commit:docker 应该在此时使用新配置自动重新启动(如果没有,请重新启动它)。


正如OP Michael Nelson评论中提到的,并在“ Docker for Windows ”中详细介绍(其中包含与“Docker for Mac”相关的部分)

VM (基于Alpine)使用OpenRC作为其初始化系统

Dockerinit脚本依赖于一个/usr/bin/mobyconfig脚本。
mobyconfig脚本要求内核使用com.docker.database指定配置文件位置的标签启动,否则会失败。

mobyconfig脚本能够检索networkinsecure-registry配置 Docker 守护进程或从/etc/docker/daemon.json.

  • 哇..这令人印象深刻地令人费解。在 git magic 之后,这些文件不会被直接读取。他们有另一个神奇的“mobyconfig”实用程序,可以从“/Database/branch/master/ro/com.docker.driver.amd64-linux”读取配置,其中文件神奇地出现在虚拟机中,然后该实用程序重新创建真正的配置文件启动期间:0 (4认同)
  • 这是完全正确的,但如果我在 daemon.json 的主机字段中输入任何值,则 Docker 拒绝启动。我尝试了 ["unix:///var/run/docker.socket", "127.0.0.1", "fd://"] 的多种组合,但均无济于事。 (2认同)