docker compose:从docker容器访问本地主机

docker compose:从docker容器访问本地主机,docker,docker-compose,Docker,Docker Compose,我有一个在docker容器中运行的服务。此服务需要访问在另一个集群中运行的数据库(我使用kubectl-port-forward,然后访问localhost:5432中的数据库) 这是我的docker compose文件 version: '3' services: api: build: . ports: - "8000:8000" - "5432:5432" environment: - APP_PORT=8000

我有一个在docker容器中运行的服务。此服务需要访问在另一个集群中运行的数据库(我使用
kubectl-port-forward
,然后访问
localhost:5432中的数据库)

这是我的
docker compose
文件

version: '3'

services:
  api:
    build: .
    ports:
      - "8000:8000"
      - "5432:5432"
    environment:
      - APP_PORT=8000 
      - DB_SERVER=localhost
      - DB_PORT=5432
      - DB_USER=postgres
      - DB_PASSWORD=mypassword 

端口
5432
的重定向似乎无法按预期工作,因为容器内的数据库连接失败。你能帮我弄清楚出了什么问题吗

在当前上下文中,localhostapi容器地址。您必须为正确的地址设置DB\u SERVER。您的服务和数据库必须位于同一docker网络中,然后您可以使用内部docker地址解析程序。之后,您应该设置DB_SERVER=postgres。另一种方法是,您可以将DB_服务器设置为您的主机地址

以下是在docker compose中定义网络的方式:

在当前上下文中,localhostapi容器地址。您必须为正确的地址设置DB\u SERVER。您的服务和数据库必须位于同一docker网络中,然后您可以使用内部docker地址解析程序。之后,您应该设置DB_SERVER=postgres。另一种方法是,您可以将DB_服务器设置为您的主机地址

以下是在docker compose中定义网络的方式: