到主机的路由设备,而不是特定的容器

问题描述:

我有简单的搬运工,撰写又名:到主机的路由设备,而不是特定的容器

version: '3' 
services: 
    app: 
    container_name: app 
    ports: 
     - 8081:8081 
    db: 
    container_name: db 
    ports: 
     - 5432:5432 

,默认情况下该容器在默认(brige是)网络创建。 应用程序有DB连接属性为:jdbc:在PostgreSQL:// DB/some_db和everythig完美的作品。但是,不时我想要的应用connecto到其他分贝,这是我的主机机器上运行,而不是在搬运工容器。

的主要问题是,我不能改变我的连接属性。而且,理想情况下,我不想运行新一些额外的选项容器我想改用数据库主机每次(但重新启动就可以了)

因此,我的问题:什么是实现这一目标的最佳方式是什么?是否有可能为容器主机解析设置额外的路由?对于exapmle,如果DB容器无法访问,然后到主机的路由。

+0

可能的重复[从Docker容器内部,我如何连接到本机的本地主机?](https://*.com/questions/24319662/from-inside-of-a-docker-container - 如何-DO-I连接到该-本地主机的最马赫) – lifeisfoo

您可以从您的主机访问主机服务。
见 “How to access host port from docker container”:

ip addr show docker0 
docker.for.mac.localhost # docker 17.06+ June 2017 

如果DB容器无法访问,然后到主机的路由。

这是一个协调器的工作。
例如,使用kubernetes,您可以将external load balencer关联起来,除非它不可访问,否则可调整为将流量重定向到您的窗格。