docker-compose另一个docker-compose的链接容器

时间:2016-07-06 20:37:27

标签: docker docker-compose

我对如何使用docker-compose设置环境感到困惑。我希望得到以下内容:

  • 用于ELK堆栈的docker-compose文件
  • 具有filebeat的Web应用程序A的docker-compose文件
  • 使用filebeat
  • 的web应用程序B的docker-compose文件

我想独立于Web应用程序A / B的容器停止/启动/构建ELK堆栈容器。但我想将容器链接到ELK堆栈容器以打开filebeat的连接。

我正在寻找的是这样的:

  1. 没有正在运行的容器
  2. docker-在Web应用程序中组成一个文件夹。没有elk容器正在运行。启动ELK堆栈,然后启动Web应用程序容器。
  3. docker-在web app B文件夹中撰写。 Elk容器已经运行(从1开始)。不启动额外的ELK堆栈。启动Web应用程序B.
  4. docker-compose stop in elk stack container works
  5. docker-compose start in elk stack container works和“reconnects”。
  6. 这有点可能吗?我没有使用扩展或链接。

    提前致谢

1 个答案:

答案 0 :(得分:5)

Docker网络是关键所在。你可以这样做:

$ docker network create some-net

然后在您的撰写文件中,将以下内容添加到底部:

networks:
  default:
    external:
      name: some-net

这会将默认网络(对于每个容器)设置为先前定义的网络(some-net)。然后,所有容器(无论它们在何处定义的组合文件)都应该能够使用内置服务名称DNS解析相互通信。

相关文档:https://docs.docker.com/compose/networking/#/using-a-pre-existing-network