我有一个简单的问题,关于网络由docker-compose up
生成的内容:
生成的IP地址172.17.0.1和172.18.0.1是否会干扰主机网络中具有相同IP地址的其他服务器?
如果你想改变Docker-Compose中的IP,IRC中的一个用户谈到了一场噩梦。是否仍然如此,是否有人有一种简单而安全的方式来更改IP?
感谢您的帮助。
答案 0 :(得分:0)
我在IRC再次询问:
Docker创建的网桥IP(-Compose)是否对其他主机可见,或者它只是实用的实习生?我想这是一个网络问题,但在#network中只有少数人:)
网桥就像你的linux系统上的任何其他接口一样:它只对那些直接连接到同一网络的主机可见,没有某种路由。在库存配置中,唯一的东西"直接连接" docker bridge是(a)您的主机和(b)您的容器,因此它不会对您网络上的其他主机可见。
谢谢,所以我网络中的其他主机可以拥有相同的IP,例如172.17.0.1 ... nice
右。
你救了我的一天:)
答案 1 :(得分:0)
如果您想放心点(我不确定我的其他答案是否确实如此):
停止使用docker-compose(例如,使用dcsg签出)。
可以使用以下命令显示Docker网络列表:
docker network ls
停止Docker:
service docker stop
以下命令显示网络(其中eth0保持不变):
ip route
删除Docker网络
ip link del docker0
验证删除是否成功:
ip route
创建或编辑文件/etc/docker/daemon.json
。在这里您可以输入自己的IP范围。
{
"bip": "192.168.3.1/24",
"fixed-cidr": "192.168.3.1/25"
}
启动Docker:
service docker start
示例docker-compose.yml
:
version: '3.1'
services:
blah:
# ...
# Prevent huge log files:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "10"
networks:
blubb:
# ...
networks:
blubb:
ipam:
driver: default
config:
- subnet: 192.168.4.0/24
别忘了(重新)启动Docker-Compose。
在Ubuntu 14.04和16.04上测试。玩得开心。