Когда я запускаю docker, почему отказано в подключении к локальному хосту?

#spring #spring-boot #docker #docker-compose #cassandra

Вопрос:

Это мой докер-compose.yml

 version: '3.7'
services:
  zookeeper-1:
    image: confluentinc/cp-zookeeper:latest
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
    ports:
      - 22181:2181

  kafka-1:
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zookeeper-1
    ports:
      - 29092:29092
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1:9092,PLAINTEXT_HOST://localhost:29092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

 cassandra:
   image: cassandra
   container_name: cassandra
   ports:
    - 9042:9042

 producer:
   image: spring/producer
   links:
    - cassandra
   depends_on:
    - cassandra
    - kafka-1
   restart: always
 consumer:
  image: spring/consumer
  links:
    - cassandra
  depends_on:
    - cassandra
    - kafka-1
  restart: always
 

Когда я запускаю первые три сервиса в докере (кафка зукепер и кассандра). Я могу связаться с производителем и потребителем с помощью intellj runner. Но когда я добавляю файл docker compose (производитель и потребитель) в качестве службы и docker-compose, службы производителей и потребителей получают сообщение localhost:9042 Ошибка отказа в подключении.

Почему я не могу связаться с Кассандрой от производителя и потребителя, когда я работаю с Докером. Какие различия? Это мое приложение-производитель.yml

 spring:
  kafka:
    producer:
      bootstrap-servers: localhost:29092
      key-serializer: org.apache.kafka.common.serialization.IntegerSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
      properties:
        acks: all
        retries: 10
    admin:
      properties:
        bootstrap.servers: localhost:29092
    template:
      default-topic: users-events
  data:
    cassandra:
      port: 9042
      keyspace-name: mykeyspace
      username: cassandra
      schema-action: create_if_not_exists
 

Комментарии:

1. Вы уверены, что весь ваш контейнер работает в одной и той же сети докеров?

2. Да, я попробовал это, но результат тот же.