我正在为应用程序服务和数据库服务使用docker-compose.yml文件:
version: '2'
services:
app-service:
image: app-image
container_name: app-container
ports:
- "5000:5000"
networks:
- my-network
links:
- db-service
db-service:
image: db-image
container_name: db-container
ports:
- "5432:5432"
networks:
- my-network
networks:
my-network:
driver: bridge
应用程序服务使用以db-service作为主机的连接字符串连接到数据库:
"User ID=postgres;Password=password;Host=db-service;Port=5432;Database=my-table;Pooling=true;"
这在正在运行的应用程序容器上运行良好,但我还需要使用主机上的相同连接字符串访问数据库。(用于开发期间的数据库迁移)
我考虑过为我的主机添加一条路由:
db-service -> localhost但这不是一个好的解决方案,因为它取决于主机操作系统。我尝试在连接字符串中使用localhost,因为我的主机然后连接到数据库容器。但显然应用程序容器将不再连接。
我还在撰写文件中使用了network_mode设置和网络驱动程序,但没有运气。
如何在容器中使用相同的主机名,就像在我的主机中一样?