无法将 PostgreSQL 数据库从 docker 连接到 python

The*_*Guy 3 python postgresql docker

我正在尝试将 Postgresql 与 python 一起使用。我使用了以下 docker 来编写文件。

version: '3.1'

services:

  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: admin_123
      POSTGRES_USER: admin

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
Run Code Online (Sandbox Code Playgroud)

使用以下代码,我尝试连接数据库。

conn = psycopg2.connect(
    database = "db_test",
    user ="admin",
    password = "admin_123",
    host = "db"
)
Run Code Online (Sandbox Code Playgroud)

但我收到此错误。

OperationalError:无法将主机名“db”转换为地址:提供了节点名或服务名,或未知

我做错了什么?

Zak*_*Zak 7

您需要在 docker compose 中公开 BD 端口,如下所示:

db:
image: postgres
restart: always
environment:
  POSTGRES_PASSWORD: admin_123
  POSTGRES_USER: admin
ports:
    - "5432:5432"
Run Code Online (Sandbox Code Playgroud)

然后用localhost:5432连接