Docker,同一networking上的多个MySQL容器 – 间歇性的连接问题

docker相当新,但我有2个项目 – 项目-a和项目-b,我想开发他们两个本地使用docker,与一个nginx代理容器之间路由。

到目前为止我有:

1)在网桥模式下创build一个名为“我的networking”的新dockernetworking。 2)启动nginx-proxy容器,并configurationdnsmasq将'.dev'域路由到单个容器(这一切都正常)3)使用以下docker-compose.yml文件启动项目-a

version: '3.2' services: web: image: brettt89/silverstripe-web working_dir: /var/www restart: unless-stopped volumes: - .:/var/www/html environment: - VIRTUAL_HOST=project-a.dev db: image: mysql volumes: - db-data:/var/lib/mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: password volumes: db-data: networks: default: external: name: my-network 

这一切都按预期的方式工作,通过nginx-代理路由请求project-a.dev到这个容器。 MySQL查询按预期工作。

但是,一旦我用相同的docker-compose文件启动project-b(除了将VIRTUAL_HOST envvariables改为project-b.dev),问题就开始了。 我可以成功导航到project-b.dev,但是在页面加载和刷新时,我会得到间歇性的数据库连接错误 – 在project-a.dev上也会出现相同的错误

有没有人有任何想法我做错了?

当你使用同一个docker组合时,你有2个数据库容器,每个项目1个。 但他们使用相同的音量。 我认为这可能是一个问题。 尝试修改旅游项目B的卷名称(例如db-data-b)。

*编辑为好的答案:*尽量不要使用桥接networking或检查容器,以避免IP冲突。