Подключите контейнеры Linux в Windows Docker Host к внешней сети

Я успешно настроил Docker-Desktop для Windows и установил свои первые контейнеры Linux из dockerhub. Сетевые контейнеры могут взаимодействовать друг с другом во внутренней сети докера. Я даже могу общаться с хост-сетью через host.docker.internal.

Теперь я подхожу к тому моменту, когда хочу получить доступ к внешней сети (просто какой-то другой сервер в сети хоста докеров) из контейнера докеров.

Я читал на нескольких веб-сайтах, что network_mode: host, похоже, не работает с рабочим столом Docker для Windows.

Я не настраивал никаких переключателей в диспетчере Hyper-V и не добавлял никаких маршрутов в докере, так как меня смущает общая концепция сети docker-desktop для Windows в сочетании с контейнерами Hyper-V и Linux.

Ниже вы можете увидеть мой текущий docker-compose.yaml с установленными NiFi и Zookeeper. NiFi может видеть Zookeeper, а NiFi может запрашивать данные из базы данных, установленной на хосте докера. Однако мне нужно запросить данные с другого сервера, отличного от хоста.

version: "3.4"
services:
  zookeeper:
    restart: always
    container_name: zookeeper
    ports: 
      - 2181:2181
    hostname: zookeeper
    image: 'bitnami/zookeeper:latest'
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes
  nifi:
    restart: always
    container_name: nifi
    image: 'apache/nifi:latest'
    volumes: 
      - D:\Docker\nifi:/data                          # Data directory
    ports:
      - 8080:8080                                     # Unsecured HTTP Web Port
    environment:
      - NIFI_WEB_HTTP_PORT=8080
      - NIFI_CLUSTER_IS_NODE=false
      - NIFI_CLUSTER_NODE_PROTOCOL_PORT=8082
      - NIFI_ZK_CONNECT_STRING=zookeeper:2181
      - NIFI_ELECTION_MAX_WAIT=1 min
    depends_on:
      - zookeeper


person mathis.plewa    schedule 02.03.2020    source источник


Ответы (1)


Проверьте, установлен ли тип подключения в dockerNAT для соответствующей внешней сети, и установите для конфигурации IPV4 значение auto.

person Rado    schedule 04.03.2020