先附上配置
version: '3.5'
services:
hadoop1:
image: hadoop:1.3
container_name: hadoop1
command: bash -c "/usr/sbin/sshd && /bin/bash"
tty: true
networks:
mynetwork:
# 宿主机会自动配置网关IP:172.20.1.1
ipv4_address: 172.20.1.2
networks:
mynetwork:
driver: bridge
ipam:
# 这里不用配置driver
# driver: default
config:
- subnet: "172.20.1.0/24"
配置这个文件碰到了以下的问题
ERROR: Pool overlaps with other one on this address space
这个说明你设置的网段被占用了,修改
- subnet的设置,可以通过ifconfig查看已经存在的网段。如果网络这一块不太懂,直接把172.17.x.x更改为172.20.x.x,20不行就换成21等等。
ERROR: The Compose file './docker-compose.yml' is invalid because:
networks.extnetwork.ipam.config value Additional properties are not allowed ('gateway' was unexpected)
这个通常是网上老版本的设置方法(version 3以下的),3以上的版本就不需要设置gateway(网关),删除即可。
宿主机会自动配置网关IP
user specified IP address is supported only when connecting to networks with user configured subnets
ERROR: Encountered errors while bringing up the project.
这个是常见错误,如果盲目根据网上大多数的方法,一般都是给自定义网段取名为extnetwork,换个名字就好了mynetwork,其实是因为这个网段已经创建了,然后你又给他重新指定一个,似乎不能覆盖。
或者可以通过docker network ls指令查看当前存在网段,可以看了一个叫docker_extnetwork的网段,直接docker network rm 网段id,删除即可。
最后附上网络模式(bridge、host、none)都有什么区别
转载
https://blog.csdn.net/weixin_30335575/article/details/97148368