我已经成功为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
答案 0 :(得分:0)
检查dockerNAT中的连接类型是否设置为适当的外部网络,并将IPV4配置设置为自动。