为什么使用Docker的Django服务器在postgresql中没有数据库运行?

我想知道为什么我的服务器正在运行,为什么没有看到另一个数据库。 用psql\l

  List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+-------------+----------+-------------+-------------+----------------------- aso | 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 owner | owner | UTF8 | en_US.UTF-8 | en_US.UTF-8 | (4 rows) 

我的Django设置:

 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'HOST': 'db', 'PORT': 5432, } } 

正如你所看到的,没有数据库名为postgres但服务器运行正常(保存数据等)。 另一方面,当我使用:

 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'aso', 'USER': 'postgres', 'HOST': 'db', 'PORT': 5432, } } 

我得到django.db.utils.OperationalError: FATAL: database "aso" does not exist任何人都可以解释我呢?

EDITED @Adaikalarajbuild议在Docker中创build数据库。 我正在尝试这种方式:

init.sql

 CREATE USER postgres; CREATE DATABASE aso; GRANT ALL PRIVILEGES ON DATABASE aso TO postgres; 

我更新的Dockerfile

 FROM python:3.6.1 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip3 install -r requirements.txt ADD . /code/ FROM library/postgres ADD init.sql /docker-entrypoint-initdb.d/ 

不幸的是我得到:

 db_1 | LOG: database system was shut down at 2017-07-05 14:02:41 UTC web_1 | /usr/local/bin/docker-entrypoint.sh: line 145: exec: python3: not found db_1 | LOG: MultiXact member wraparound protections are now enabled db_1 | LOG: autovacuum launcher started db_1 | LOG: database system is ready to accept connections dockerpri_web_1 exited with code 127 

这里'HOST': 'db'在docker中运行,似乎你正在检查你的系统中的psql 。 你可以在HOST : 127.0.0.1给你的IP地址(例如:127.0.0.1),或者你可以在aso中运行的postgres中创builddb aso