1

こんにちは、私は現在カッカーをドッカーで設定しています。ドッカー製のカフカ設定

version: '2' 

services: 
    zookeeper: 
    image: confluentinc/cp-zookeeper:3.2.0 
    container_name: zookeeper 
    hostname: zookeeper 
    ports: 
     - "2181:2181" 
    environment: 
     ZOOKEEPER_CLIENT_PORT: 2181 
     ZOOKEEPER_TICK_TIME: 2000 
    restart: always 

    kafka: 
    image: confluentinc/cp-kafka:3.2.0 
    hostname: kafka 
    container_name: kafka 
    depends_on: 
     - zookeeper 
    ports: 
     - '9092:9092' 
    environment: 
     KAFKA_BROKER_ID: 1 
     KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' 
     KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.99.100:9092 
     LISTENERS: PLAINTEXT://0.0.0.0:9092 
    restart: always 

    kafka-rest: 
    image: confluentinc/cp-kafka-rest:3.2.0 
    container_name: kafka-rest 
    depends_on: 
    - kafka 
    ports: 
    - '8082:8082' 
    environment: 
    KAFKA_REST_ZOOKEEPER_CONNECT: 'zookeeper:2181' 
    KAFKA_REST_LISTENERS: http://kafka-rest:8082 
    KAFKA_REST_SCHEMA_REGISTRY_URL: http://schema-registry:8081 
    KAFKA_REST_HOST_NAME: kafka-rest 
    restart: always 

schema-registry: 
    image: confluentinc/cp-schema-registry:3.2.0 
    container_name: schema-registry 
    depends_on: 
    - kafka 
    ports: 
    - '8081' 
    environment: 
    SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: 'zookeeper:2181' 
    SCHEMA_REGISTRY_HOST_NAME: schema-registry 
    SCHEMA_REGISTRY_LISTENERS: http://schema-registry:8081 
    restart: always 

connect: 
    image: confluentinc/cp-kafka-connect:3.2.0 
    container_name: kafka-connect 
    depends_on: 
    - zookeeper 
    - kafka 
    - schema-registry 
    ports: 
    - "8083:8083" 
    restart: always 
    environment: 
    CONNECT_BOOTSTRAP_SERVERS: 'kafka:9092' 
    CONNECT_REST_ADVERTISED_HOST_NAME: connect 
    CONNECT_REST_PORT: 8083 
    CONNECT_GROUP_ID: compose-connect-group 
    CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs 
    CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets 
    CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status 
    CONNECT_KEY_CONVERTER: io.confluent.connect.avro.AvroConverter 
    CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081 
    CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter 
    CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081 
    CONNECT_INTERNAL_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter 
    CONNECT_INTERNAL_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter 
    CONNECT_ZOOKEEPER_CONNECT: "zookeeper:2181" 

今、私が正しく設定することで、私の非dockerizedアプリケーションに正しくカフカコンテナを公開することができた:私は、次のドッキングウィンドウ・コンファイルを参照してください、公表合流イメージでセットアップ飼育係とカフカに管理してきましたPLAINTEXT:// {DOCKER_MACHINE_IP}:9092へのadvertised.listenerプロパティを参照してください。私はKafkaセットアップ(Kafka REST、Schema-Registry)を拡張するためのコンフルエントなアプリケーションも追加しました。これらは、私のKafkaインスタンスには、もはやadvertised.listenerプロパティのために接続できません。

私はそれを正しいコンテナのホスト名 - > PLAINTEXT:// kafka:9092に変更することができましたが、私は他のアプリで再びkafkaインスタンスにアクセスできなくなります。この問題を解決する簡単な方法はありますか?

+1

Mac用ドッカーでは、正しいコンテナホスト名を使用し、ホストマシンのローカルホストにコンテナ名をエイリアスするために/ etc/hostsに行を追加します –

答えて

1

オマール、あなたの問題は既に解決しているかもしれませんが、将来的にはHans JespersenさんのコメントがWindowsであっても私のトリックとなりました。

adminとして、C:\Windows\System32\drivers\etc\hostsを開き、次の行を追加して、kafkaブローカーをlocalhostとして公開します。 127.0.0.1 broker

そして、次のように私のdocker-compose.ymlファイルが見えます。また

--- 
version: '2' 
services: 
    zookeeper: 
    image: confluentinc/cp-zookeeper 
    hostname: zookeeper 
    extra_hosts: 
    - "moby:127.0.0.1" 
    ports: 
     - "2181:2181" 
    environment: 
     ZOOKEEPER_CLIENT_PORT: 2181 
     ZOOKEEPER_TICK_TIME: 2000 

    broker: 
    image: confluentinc/cp-kafka 
    hostname: broker 
    extra_hosts: 
    - "moby:127.0.0.1" 
    depends_on: 
     - zookeeper 
    ports: 
     - '9092:9092' 
    environment: 
     KAFKA_BROKER_ID: 1 
     KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' 
     KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://broker:9092' 
     KAFKA_DEFAULT_REPLICATION_FACTOR: 1 

    schema_registry: 
    image: confluentinc/cp-schema-registry 
    hostname: schema_registry 
    # extra_hosts: 
    # - "moby:127.0.0.1" 
    depends_on: 
     - zookeeper 
     - broker 
    ports: 
     - '8081:8081' 
    environment: 
     SCHEMA_REGISTRY_HOST_NAME: schema_registry 
     SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: 'zookeeper:2181' 

    kafka-rest: 
    image: confluentinc/cp-kafka-rest 
    container_name: kafka-rest 
    extra_hosts: 
    - "moby:127.0.0.1" 
    depends_on: 
     - zookeeper 
     - broker 
    ports: 
     - '8082:8082' 
    environment: 
     KAFKA_REST_ZOOKEEPER_CONNECT: 'zookeeper:2181' 
     KAFKA_REST_LISTENERS: http://kafka-rest:8082 
     KAFKA_REST_SCHEMA_REGISTRY_URL: http://schema-registry:8081 
     KAFKA_REST_HOST_NAME: kafka-rest 

、(ipconfig/allとを使用して)私のラップトップの現在のIPアドレスを暴露も動作しますが、これは、いつでも自分のネットワークの変更欠点を持っています、私もdocker-compose.ymlファイルを変更する必要があります。

関連する問題