在Django数据库设置中使用en0地址作为主机

时间:2018-02-28 15:00:10

标签: django docker-compose psql

我正在尝试在docker Django容器中使用我的localhost数据库。 我已经在postgresql.conf文件中允许了listen_address。 我在pg_hba.conf文件中添加了host all all localhost,192.168.1.9 trust

192.168.1.9 是我的en0地址。 现在我想在django的数据库设置中使用 192.168.1.9 作为我的主机。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'db_name',
        'USER': 'db_user',
        'PASSWORD': 'db_password',
        'HOST': '192.168.1.9',
        'PORT': '5432',
    }
}

我正在尝试这个,但我无法成功。 难道我做错了什么?我希望postgres接受所有连接,因此Django app容器可以连接到我的本地机器数据库。 我正在尝试

psql -h 192.168.1.9 -U db_user -d db_name

Getting psql: could not connect to server: Permission denied
    Is the server running on host "192.168.1.9" and accepting
    TCP/IP connections on port 5432?

我不确定我在做什么错。

1 个答案:

答案 0 :(得分:0)

docker容器通常位于单独的网络接口(docker0)上,因此如果您的应用想要访问您的主机,则必须使用docker0接口。

您可以使用

从容器中获取主机的IP
/sbin/ip route|awk '/default/ { print $3 }'