如何访问docker-compose中的Postgres数据库

我对Postgres和Docker相当陌生,但是我正在用一个带有postgresql数据库的docker运行的Django构build一个webapp。 我想通过命令提示符或pgweb查看我的Postgres数据库。

不幸的是,我似乎无法find数据库,我尝试使用postgres psqlterminal命令,但我的数据库没有列在里面。 我的问题是,如何将postgresql数据库存储在docker-compose容器中。 我是否需要手动进入容器,然后查看数据库? 我的最终目标是能够在postgresql数据库中看到我所有表和数据的列表。

任何文档解释如何postgresql数据库交互与docker组成,将不胜感激。

谢谢!

我刚刚添加了Pgweb,但似乎没有工作

Local.YML

version: '2' volumes: postgres_data_local: {} postgres_backup_local: {} services: django: build: context: . dockerfile: ./compose/local/django/Dockerfile depends_on: - postgres volumes: - .:/app environment: - POSTGRES_USER=vicki - USE_DOCKER=yes ports: - "8000:8000" command: /start.sh postgres: build: context: . dockerfile: ./compose/production/postgres/Dockerfile volumes: - postgres_data_local:/var/lib/postgresql/data - postgres_backup_local:/backups environment: - POSTGRES_USER=vicki pgweb: container_name: pgweb restart: always image: sosedoff/pgweb ports: - "8081:8081" links: - postgres:postgres environment: - DATABASE_URL=postgres://postgres:postgres@postgres:5432/postgres depends_on: - postgres 

这是我正在谈论的PostgreSQLterminalpsql,当我打开我的terminal并运行:

 postgres@dom-Inspiron-7559:~$ psql psql (9.3.19) Type "help" for help. postgres=# \l postgres=# 

这个数据库列表出现了,但我不认为vickibot和vicki是一样的。 (我用django cookiecutter做了两个应用程序,一个在docker中,另一个在docker中,我相信我现在使用的是在docker容器中的“vicki”,但是我不确定和不知道如何知道我的模型文件引用了什么数据库我想知道是否需要以某种方式进入docker容器查看数据库)

  List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres test1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | vickibot | dominic | UTF8 | en_US.UTF-8 | en_US.UTF-8 | (5 rows) 

要访问容器中的postgres,请在容器范围内运行cli

 docker-compose run postgres psql 

您还可以连接到容器发布端口,该端口尚未在您现有的configuration中发布。

  postgres: build: context: . dockerfile: ./compose/production/postgres/Dockerfile volumes: - postgres_data_local:/var/lib/postgresql/data - postgres_backup_local:/backups ports: - '5433:5432' environment: - POSTGRES_USER=vicki 

然后连接到您发布的端口

 psql -h localhost -p 5433