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

时间:2017-12-20 12:38:31

标签: docker docker-compose

我正在使用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环境变量传递了应该运行的主机名。

当我运行这个时,我得到一个"查找'流利的':没有这样的主持人"错误信息。

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

1 个答案:

答案 0 :(得分:3)

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

networks:
    your_network_name:
      driver: bridge

然后使用 - network =“your_network_name”标记

运行另一个容器

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

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

version: '2'
services:

 container_1:
  build: container_1
  networks:
   - code-network

networks:
 code-network:
  driver: bridge

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

version: '2'
services:

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

networks:
  code-network:
   external: true

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