gpt4 book ai didi

docker - 连接两个 docker-compose 实例

转载 作者:IT老高 更新时间:2023-10-28 21:34:21 34 4
gpt4 key购买 nike

我有一个 dockerized 应用程序,其中有一些使用 docker-compose 运行的服务。我想使用另一个 docker-compose 应用程序 docker-elk 将此应用程序与 ElasticSearch/Logstash/Kibana (ELK) 连接起来。 .它们都在开发中的同一台 docker 机器上运行。在生产中,情况可能并非如此。

如何配置我的应用程序的 docker-compose.yml 以链接到 ELK 堆栈?

最佳答案

2016 年 6 月更新

从 docker 1.10 开始,以下答案已过时。有关新解决方案,请参阅其他类似的答案。 https://stackoverflow.com/a/34476794/1556338

旧答案

  1. 创建网络:

     $ docker network create --driver bridge my-net
  2. 在 docker-compose.yml 文件中将该网络作为环境变量 (${NETWORK}) 引用。例如:

    pg:
    image: postgres:9.4.4
    container_name: pg
    net: ${NETWORK}
    ports:
    - "5432"
    myapp:
    image: quay.io/myco/myapp
    container_name: myapp
    environment:
    DATABASE_URL: "http://pg:5432"
    net: ${NETWORK}
    ports:
    - "3000:3000"

注意 http://pg:5432 中的 pg 将解析为 pg 服务(容器)的 ip 地址。无需硬编码 IP 地址; pg 的条目会自动添加到 myapp 容器的/etc/host 中。

  1. 调用 docker-compose,将您创建的网络传递给它:

    $ NETWORK=my-net docker-compose up -d -f docker-compose.yml -f other-compose.yml

我创建了一个 bridge network 以上仅适用于一个节点(主机)。对开发人员有好处。如果你需要让两个节点互相通信,你需要创建一个 overlay network 。不过原理一样。您将网络名称传递给 docker-compose up 命令。

关于docker - 连接两个 docker-compose 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34393779/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com