【问题标题】:Make Docker for mac listen on a tcp port让 Docker for mac 监听 tcp 端口
【发布时间】:2016-09-01 03:40:49
【问题描述】:

我正在尝试让 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"

在mac版的Docker上?

【问题讨论】:

    标签: macos docker


    【解决方案1】:

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

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

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

    参考: Access Docker daemon Remote api on Docker for Mac

    【讨论】:

      【解决方案2】:

      如果你使用的是最后一个docker for mac beta,根据issue 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

      守护进程配置在etc/docker/daemon.json下,它只使用来自Linux configuration file的配置。

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


      正如the comments 中的OP Michael Nelson 所述,并在“Docker for Windows”(其中包含与“Docker for Mac”相关的部分)中进行了详细说明

      VM (Alpine-based) 使用 OpenRC as its init system

      Docker init 脚本依赖于 /usr/bin/mobyconfig 脚本。
      这个mobyconfig 脚本要求内核使用com.docker.database 标签指定配置文件的位置,否则它会退出。

      mobyconfig 脚本能够检索 Docker 守护进程的 networkinsecure-registry 配置,或者从 /etc/docker/daemon.json 获取配置文件。

      【讨论】:

      • 哇......这令人印象深刻。在 git 魔术之后,这些文件不会被直接读取。他们有另一个神奇的mobyconfig 实用程序,它从/Database/branch/master/ro/com.docker.driver.amd64-linux 读取配置文件神奇地出现在虚拟机中,然后实用程序在启动期间重新创建真实的配置文件:0
      • 这一切都是正确的,但是如果我在 daemon.json 的 hosts 字段中输入任何值,那么 Docker 将拒绝启动。我尝试了许多 ["unix:///var/run/docker.socket", "127.0.0.1", "fd://"] 的组合都无济于事。
      【解决方案3】:

      这可能是因为您没有运行机器。

      eval $(docker-machine env default)
      

      如果输出表明没有默认机器,则执行,

      docker-machine create default --driver virtualbox
      

      这将创建一个默认机器并且连接成功。

      【讨论】:

        【解决方案4】:

        $ 码头工人信息

        HTTP 代理:docker.for.mac.http.internal:3128

        HTTPS 代理:docker.for.mac.http.internal:3129

        注册:https://index.docker.io/v1/

        希望对你有帮助

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-02
          • 1970-01-01
          • 1970-01-01
          • 2012-06-13
          • 1970-01-01
          • 1970-01-01
          • 2019-10-24
          • 1970-01-01
          相关资源
          最近更新 更多