docker - 将网络分配给一项服务是否会将其与 docker-compose 中的其他服务隔离开来?
问题描述
我有许多服务正在运行并共享默认网络。
现在我想创建将与默认网络隔离的 integrationTest 容器,因此我也可以测试 haProxy。
integration-test:
image: image:some-image:tag
container_name: integration-test
command: node_modules/.bin/jest integration/
networks:
- frontend
depends_on:
- mongodb
将网络分配给该服务是否足够,从而将其与其他服务隔离开来,还是我需要为所有其他服务分配另一个网络?
解决方案
TLDR;是的,这会将集成测试与 docker-compose 文件中的任何其他服务分开。
更长的版本...
默认情况下,docker-compose 为您的 docker-compose.yml 文件创建一个桥接网络project_default
(也称为默认网络)。
以下两个服务定义完全相同。
app:
build: .
networks:
- default
app:
build: .
如果您希望您的服务连接到其他网络,那么您必须列出这两个default
网络以及其他网络。
app:
build: .
networks:
- default
- frontend
如果您希望您的服务仅在其他服务上,那么只需default
从网络中删除。
app:
build: .
networks:
- frontend
如果您对哪些容器连接到哪些网络有疑问,您可以随时检查容器或网络。例如。docker inspect frontend
或者docker inspect project_app_1
推荐阅读
- javascript - 控制台中的文本显示不正确
- javascript - 创建函数后如何将局部变量定义为函数
- javascript - TypeError:无法读取 useState ReactJS 未定义的属性“地图”
- r - 使用地址获取R中的纬度和经度
- javascript - 编程新手,不理解错误 Uncaught TypeError: document.getElementById(...) is null
- azure-sql-database - 尝试使用 Update-Database -Migration 命令迁移到 Azure SQL 数据库时,Azure keyVaultEndpoint 返回 null
- dataframe - 导出为 xlsx 时正确格式化数据
- java - Java - 使用 Runtime.getRuntime() 执行命令
- java - 重载问题:无法解析方法
- flask-wtforms - WTForm 创建新条目