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

use*_*200 1 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应用程序A容器.
  3. docker-组成Web应用程序B文件夹.Elk容器已经运行(从1开始).不启动额外的ELK堆栈.启动Web应用程序B.
  4. docker-compose停止在elk堆栈容器中工作
  5. docker-compose start in elk stack container工作并"重新连接".

这有点可能.我没有使用扩展或链接.

提前致谢

joh*_*s85 6

Docker网络是关键.你可以做:

$ docker network create some-net

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

networks:
  default:
    external:
      name: some-net
Run Code Online (Sandbox Code Playgroud)

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

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