Предоставление сервисов docker-compose также машине HOST - PullRequest
0 голосов
/ 04 февраля 2019

Вот мой файл определения v3.5 docker-compose.yml.Он имеет сеть analytics (с псевдонимом с тем же именем), и оба включенных сервиса соединяются с указанной сетью для связи друг с другом.Это работает.

Однако я хочу, чтобы эти службы (порты) также были доступны для компьютера HOST.Есть способ сделать это, определив дополнительную сеть и / или указав дополнительные ports: записей в самих сервисах, но я не могу понять, как именно, потому что документация очень запутанная и зависит от версии (движущиеся цели).

Не разрушая нижеследующее (потому что оно работает внутренне), какие дополнения я сделаю (и где), чтобы также предоставить обе службы для машины HOST?

Спасибо!

version: '3.5'

networks:
  analytics:
    name: analytics
    driver: bridge

  # ===========================================
  # Service: Zookeeper
  # ===========================================
  zookeeper:
    image: 'wurstmeister/zookeeper:latest'
    container_name: analytics-ZooKeeper
    networks:
      - analytics
    ports:
      - "2181:2181"
    volumes:
      - ./data.d/zookeeper.d:/opt/zookeeper-3.4.9/data
  # ===========================================

  # ===========================================
  # Service: Kafka
  # ===========================================
  kafka:
    build:
      context: ./kafka.d
      dockerfile: Dockerfile
    image: nmvega/kafka:latest

    networks:
      - analytics
    ports:
      - 9092-9094:9092 # For one to three Kafka brokers.

    environment:
     #KAFKA_ADVERTISED_HOST_NAME: vps00         # Docker host Name. <--- BEFORE
      KAFKA_ADVERTISED_HOST_NAME: 192.168.0.180 # Docker host IP.   <--- AFTER
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data.d/kafka.d:/kafka

    depends_on:
      - zookeeper
  # ===========================================

РЕДАКТИРОВАТЬ : После дальнейшего изучения приведенная выше конфигурация, как было первоначально опубликовано, верна с небольшой модификацией от name хоста Docker к IP хоста Docker (какпредписано readme для изображения , которое я использую).Случайное использование name не имело значения, пока я не попытался получить доступ к услуге с хоста.

Надеюсь, этот пример будет полезен для других, желающих его увидеть.Спасибо комментаторам ниже.

...