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

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

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的networking,然后启动fluentd。

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

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

FLUENTHOST环境variables传递应该在其上运行的主机名。

当我运行这个我得到一个“查找”fluentd“:没有这样的主机”的错误信息。

我是否在Docker Compose文件或docker run命令中缺less一个步骤?

在你的docker-compose文件中,你需要指定自定义的networking驱动桥。

 networks: your_network_name: driver: bridge 

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

我有类似的方法,但我运行两个容器由不同的docker组成的文件,看看。

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

 version: '2' services: container_1: build: container_1 networks: - code-network networks: code-network: driver: bridge 

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

 version: '2' services: container_2: build: "container_2" networks: - code-network networks: code-network: external: true 

以上两个容器1和容器2在同一个networking上运行,希望这会帮助你:)