簡體   English   中英

在docker-compose.yml中了解容器的主機名

[英]Understanding Hostname of Containers in docker-compose.yml

我正在嘗試了解docker-compose.yml (也顯示在本文的底部)。

問題: confluent:2181用於以下行

KAFKA_ZOOKEEPER_CONNECT: "confluent:2181"

這個confluent主機名是如何定義的? 如果我正確理解了Docker中的主機名,則唯一的容器主機名是zookeeperkafkarest-proxyschema-registry

docker-compose.yml

version: "2"
services:
    zookeeper:
        image: confluent/zookeeper
        ports:
        - "2181:2181"
        environment:
        zk_id: "1"
        network_mode: "host"
    kafka:
        image: confluent/kafka
        depends_on:
        - zookeeper
        ports:
        - "9092:9092"
        environment:
        KAFKA_ZOOKEEPER_CONNECT: "confluent:2181"
        network_mode: "host"
    rest-proxy:
        image: confluent/rest-proxy
        depends_on:
        - zookeeper
        - kafka
        - schema-registry
        ports:
        - "8082:8082"
        environment:
        RP_ZOOKEEPER_CONNECT: "confluent:2181"
        RP_SCHEMA_REGISTRY_URL: "http://confluent:8081"
        network_mode: "host"
    schema-registry:
        image: confluent/schema-registry
        depends_on:
        - kafka
        - zookeeper
        ports:
        - "8081:8081"
        environment:
        SR_KAFKASTORE_CONNECTION_URL: "confluent:2181"
        network_mode: "host"

你是對的。 根據docker-compose.yml ,定義的服務將僅為zookeeperkafkarest-proxyschema-registry提供DNS解析,而不會confluent

但是,如果您查看confluentinc的文檔,它們會要求您修改主機中的主機文件:

編輯您的主機文件並為Docker計算機添加主機條目。

192.168.99.100匯合

這就是為什么您可以使用confluent並獲得名稱解析的原因。 它與docker或compose無關。

PS:請注意, 根據其文檔 ,您正在使用不推薦使用的圖像

是的,你是對的。

根據自述文件 ,您應該首先運行融合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM