【问题标题】:Route to host machine instead of particular container路由到主机而不是特定容器
【发布时间】:2017-10-12 20:23:27
【问题描述】:

我有简单的 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,并且一切正常。但有时我希望应用程序连接到其他数据库,该数据库运行在我的 主机 机器上,而不是在 docker 容器中。

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

因此我的问题是:实现这一目标的最佳方法是什么?是否可以为容器主机解析设置额外的路由?例如,如果 db 容器不可访问,则路由到主机。

【问题讨论】:

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


【解决方案1】:

您可以从您的主机访问主机服务。
见“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,它可以调整为将流量重定向到您的 pod,除非它不可访问。

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    相关资源
    最近更新 更多