我有一个docker compose文件,如下所示:
version: '3.2'
services:
service-one:
build: service-one
container_name: service-one
networks:
- my-custom-network
restart: unless-stopped
service-two:
depends_on:
- service-one
build: service-two
container_name: service-two
networks:
- my-custom-network
restart: unless-stopped
networks:
my-custom-network:
driver: l2bridge
通过运行docker-compose-up
,这在我的机器上似乎工作正常,所有容器都启动,并且它们彼此联网,并且在必要时可以通过0.0.0.0到达主机(有些服务我们还不能容器化,主机需要运行)。
但是,在另一位开发人员的计算机上,他下载了所有内容并运行docker-compose up
;它创建了网络,机器启动了,但是他无法到达它们。如果他执行了docker network inspect my-custom-network
,则表明确实已创建网络,并且已经分配了IP地址,但是将这些IP地址输入到浏览器中不会产生任何结果。
我们尝试一次手动将它们构建在一台计算机上,然后将它们放置在默认的“ nat”网络中,并且如果将计算机放置在该网络中,则可以访问这些计算机。
因此,我想我的问题分为两部分:
或者...
根据Microsoft的文章Windows容器网络:
l2bridge-连接到使用“ l2bridge”驱动程序创建的网络的容器将与容器主机位于同一IP子网中。必须从与容器主机相同的前缀静态分配IP地址。由于在入口和出口上的第2层地址转换(MAC重写)操作,主机上的所有容器端点都将具有相同的MAC地址。
需要Windows Server 2016或Windows 10 Creators Update
由于您和您的同事使用的是Windows 10版本1607(周年更新),因此您和您的同事都处于文档无法保证的情况下。之所以对您有用而不对他有用,可能与您的计算机上安装的某些软件或Windows更新而不是他安装的更新不同,例如,另一个网络驱动程序。
我认为您既应该更新到Windows 10 Creators Update(版本1703),又要验证您的Docker版本是否相同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句