繁体   English   中英

将SQL IDE连接到docker db容器?

[英]Connect SQL IDE to docker db container?

我将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进行连接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM