记一次使用docker-compose部署应用的时候踩得坑
记一次使用docker-compose部署应用的时候踩得坑
在部署gitea
的时候,用的是docker-compose起的应用,然后起完应用之后,突然发现ssh没有响应了,由于是用堡垒机上的生产机器,所以第一反应是堡垒机无法访问主机了,在外部的网络策略上研究了半天毫无进展,直到突然发现可以用安全组内的其他机器访问这台机器,那么事情就开始变得微妙了起来,于是发现了在docker-compose起来的时候,给服务分配了一个172.19.0.0的网卡,导致堡垒机能正常的访问主机,但是主机上的报文在返回的时候,由于返回给了docker的网卡,所以出的问题。
后来仔细去看了一下docker-compose的文档,发现docker-compose默认会给每个应用从172.18.0.0依次往后匹配网段,只要容器没有被删除则一直占用网络,如果删除后重启则依次采用新的网段之前的不再使用,因此很容易造成路由冲突
解决方案:
-
可以在单个docker-compose.yml文件中增加networks配置,设置网段为168.168.0.0/16,如下
networks: default: name: milvus ipam: driver: default config: - subnet: 168.168.0.0/16
-
或者修改全局docker网络配置,docker自动分配的网段使用168.168.0.0/16,每个子网掩码划分为 255.255.255.0
{ "default-address-pools":[ { "base": "168.168.0.0/16", "size": 24 } ] }
注意:daemon.json 修改完了之后记得要重启docker服务哈~
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果