gpt4 book ai didi

sql - 将SQL IDE连接到docker db容器?

转载 作者:行者123 更新时间:2023-12-02 18:21:41 25 4
gpt4 key购买 nike

我将docker与以下三种服务结合使用:

version: '2'
services:
nginx:
image: nginx:latest
container_name: nz01
ports:
- "8000:8000"
volumes:
- ./src:/src
- ./config/nginx:/etc/nginx/conf.d
depends_on:
- web
web:
build: .
container_name: dz01
depends_on:
- db
volumes:
- ./src:/src
expose:
- "8000"
db:
image: postgres:latest
container_name: pz01
volumes:
- ./postgres-data:/var/lib/postgresql/data

一切似乎都运行良好,并且我知道db服务正在 172.18.0.2上运行,但是当我使用 Datagrip连接到 DB时,可以更快地使用表创建和插入以及类似的操作。

我在django应用程序上的配置是:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'pz01',
'PORT': 5432,
}
}

Datagrip的配置:
'DB_NAME': 'postgres',
'USER': 'postgres',
'HOST': 'pz01',
'PORT': 5432,

我也尝试使用host作为ip和localhost,但都无法正常工作。
密码为null,因为db服务日志显示默认情况下它没有密码。

如何从Macbook连接到Docker数据库?

编辑:
正如@Dihgg所说,我已将端口固定在数据库服务上。

我定在
db:
image: postgres:latest
container_name: pz01
ports:
- "5433:5432"
volumes:
- ./postgres-data:/var/lib/postgresql/data

端口不是5432:5432,因为当这是我得到的值时:
ERROR: for db  Cannot start service db: b'driver failed programming external connectivity on endpoint pz01 (146bb3cdada29f75766aa888143b4af17b267d13096db60fb0ccdaedb710e77e): Error starting userland proxy: Bind for 0.0.0.0:5432 failed: port is already allocated'
ERROR: Encountered errors while bringing up the project.

尽管如此,当我使用pz01作为主机时,我无法从Datagrip连接,错误是(尝试使用5432或5433端口且未设置密码):
Host is unknown

当我将主机用作IP时,错误是: Connection failed

最佳答案

尝试公开数据库容器中的端口

db:
image: postgres:latest
container_name: pz01
ports:
- "5432:5432"
volumes:
- ./postgres-data:/var/lib/postgresql/data

然后,使用localhost:5432进行连接

关于sql - 将SQL IDE连接到docker db容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51446812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com