将Windows Docker Host中的Linux容器连接到外部网络

时间:2020-03-02 14:13:20

标签: linux docker networking docker-compose docker-desktop

我已经成功为Windows设置了Docker-Desktop,并从dockerhub安装了我的第一个linux容器。网络容器可以在docker内部网络上相互通信。我什至可以通过host.docker.internal与主机网络进行通信。

现在我到了要从docker容器内部访问外部网络(只是docker主机网络上的其他服务器)的地步。

我在多个网站上读到network_mode: host似乎不适用于Windows的docker桌面。

我还没有在Hyper-V Manager中配置任何交换机,也没有在docker中添加任何路由,因为我对Windows与Hyper-V和Linux容器结合使用的docker-desktop的整体网络概念感到困惑。

在下面,您可以看到我当前安装了NiFi和Zookeeper的docker-compose.yaml。 NiFi可以查看Zookeeper,而NiFi可以从Docker主机上安装的数据库查询数据。但是我需要从主机以外的其他服务器查询数据。

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

1 个答案:

答案 0 :(得分:0)

检查dockerNAT中的连接类型是否设置为适当的外部网络,并将IPV4配置设置为自动。