【问题标题】:Link Running External Docker to docker-compose services将运行外部 Docker 链接到 docker-compose 服务
【发布时间】:2016-06-11 07:45:29
【问题描述】:

我假设有一种方法可以通过以下一种或多种方式进行链接:链接、external_links 和网络。

有什么想法吗?到目前为止,我空手而归。

这是一个 Docker-compose 的 sn-p 示例,它是从一个单独的 Ubuntu docker 中启动的

version: '2'
 services:
  web:
   build: .
   depends_on:
    - redis
 redis:
  image: redis

我希望能够从启动 docker-compose 的 Docker 连接到 redis 端口。

我不想绑定主机上的端口,因为这意味着我将无法从同一模型启动多个 docker-compose。

-- 上下文-- 我正在尝试从 Jenkins maven build Docker 中运行 docker-compose,以便我可以运行测试。但我一辈子都无法让原始 Docker 访问 docker-compose 上的暴露端口

【问题讨论】:

    标签: docker jenkins-plugins docker-compose docker-networking docker-container


    【解决方案1】:

    通过主机名引用机器,v2默认自动通过主机名连接私有网络上的节点。您将能够从每个容器中 ping “web”和“redis”。如果您想从主机访问机器,请在 yml 中为每个服务添加“端口”定义。

    v1 链接已从 v2 组合语法中删除,因为它们现在是隐式的。来自docker compose file documentation

    链接与环境变量:如环境变量参考中所述,由链接创建的环境变量已被 被弃用了一段时间。在新的 Docker 网络系统中,他们有 被移除。您应该直接连接到适当的 主机名或者自己设置相关的环境变量...

    【讨论】:

    • 我已经更新了描述,因为我在做什么并不那么明显。从已经运行的 Ubuntu docker 内部,我需要启动一个 docker compose,它将从上面的 yaml 开始。然后,同一个 Ubuntu docker 需要访问 docker-compose 网络中的 redis。我也不想绑定到整个主机,我想在两个网络之间架起一个网络连接。
    • 我还没有在docker里面做docker,但是之前改过$DOCKER_HOST来访问一个远程docker主机,和把-H http://host_ip:2375传递给docker命令是一样的。这将使您可以在与其他 docker 机器相同的主机上的隔离网络上编写测试机器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多