路由到主机而不是特定容器

时间:2017-10-12 20:23:27

标签: docker docker-compose docker-networking docker-network

我有简单的docker-compose aka:

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

默认情况下,此容器是在默认(brige)网络中创建的。 该应用程序具有数据库连接属性:jdbc:postgresql:// db / some_db,并且everythig完美运行。但是我不时希望应用程序连接到其他数据库,这是在我的主机机器上运行,而不是在docker容器中运行。

主要问题是我无法更改我的连接属性。而且,理想情况下,每次我想切换数据库主机时,我都不希望运行新的容器以及其他一些选项(但重启是可以的)

因此我的问题是:实现这个目标的最佳途径是什么?是否可以为容器主机解析设置其他路由?例如,如果db容器无法访问,则路由到主机。

1 个答案:

答案 0 :(得分:0)

您可以从主机访问主机服务 请参阅“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,可以将其调整为将流量重定向到您的广告连播,除非它无法访问。