如何从独立容器连接到Docker Compose容器

问题描述 投票:2回答:1

我正在使用Docker Compose文件来启用一个流畅的版本,如下所示:

version: '3'
services:

  fluentd:
    image: "fluent/fluentd:latest"
    ports:
      - "9880:9880"
      - "24224:24224"
    volumes:
      - ./config:/fluentd/etc
      - ./data/fluentd/logs:/fluentd/logs
    environment:
      - FLUENTD_CONF=fluentd.conf

这将启动一个名为project_default的网络,然后启动流利。

然后,我想从包含我正在开发的应用程序的vanilla Docker容器连接到该流畅的实例。据我从文档中可以看出,我应该能够运行容器并使用以下命令连接到流畅的实例:

docker run --network=project_default -e FLUENTHOST='fluentd' myapp:1.0.0

其中FLUENTHOST环境变量传递了应该运行的fluentd的主机名。

当我运行这个时,我得到一个“查找'流畅':没有这样的主机”错误消息。

我在Docker Compose文件或docker run命令中错过了一步吗?

docker docker-compose
1个回答
3
投票

在docker-compose文件中,您需要指定自定义网络驱动程序桥。

networks:
    your_network_name:
      driver: bridge

然后使用--network =“your_network_name”标志运行另一个容器

我有类似的方法,但我通过不同的docker-compose文件运行两个容器,看看。

docker-compose文件在自定义网络名称代码网络上运行Container 1

version: '2'
services:

 container_1:
  build: container_1
  networks:
   - code-network

networks:
 code-network:
  driver: bridge

docker-compose文件运行Container 2以在现有的网络代码网络上运行

version: '2'
services:

 container_2:
  build: "container_2"   
  networks:
    - code-network

networks:
  code-network:
   external: true

上面两个容器1和容器2都运行在同一个网络上,希望这会帮助你:)

© www.soinside.com 2019 - 2024. All rights reserved.