我有一个django项目与PostgreS数据库。我需要在docker容器中使用我的本地数据库。如何与docker容器共享机器的localhost?My Docker-compose.yml:
version: '3'
services:
web:
build: ./
network_mode: "host"
command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py collectstatic --noinput --i rest_framework && gunicorn orion-amr.wsgi:application --bind 0.0.0.0:8000 --workers=2"
ports:
- "${webport}:8000"
- "${pgport}:${pgport}"
env_file:
- ./.env
Django Settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': os.environ.get('pgdatabase'),
'USER': os.environ.get('pguser'),
'PASSWORD': os.environ.get('pgpassword'),
'HOST': os.environ.get('pghostname'),
'PORT': os.environ.get('pgport'),
}
}
我添加了
listen_addresses = '*'
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 0.0.0.0/0 trust
# IPv6 local connections:
host all all ::/0 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
现在我有一个错误:
web_1 | django.db.utils.OperationalError: could not connect to server: Connection refused
web_1 | Is the server running on host "127.0.0.1" and accepting
web_1 | TCP/IP connections on port 5432?
web_1 |
谁能帮我?求求你!
os.environ.get('pghostname')
似乎指向127.0.0.1
,其中127.0.0.1
表示此容器,而不是主机DB。作为错误
Is the server running on host "127.0.0.1" and accepting
要与主机数据库连接,您需要为mac和Windowshost.docker.internal
提供特殊的DNS。DB主机应为
'HOST': "host.docker.internal"
要与主机DB连接,或者如果您是在Linux上,那么它应该是
'HOST': "HOST_IP"
您可以从ifconfig
获取主机IP。
我想在启动Postgres Docker映像后创建一个数据库。
另一个尝试: 有没有人用美洲狮成功做到这一点?如果是的话,我错过了什么?感谢您对此问题的帮助!
我有两个docker容器在运行,遵循这里给出的说明:https://github.com/swri-robotics/bag-database。 现在我可以在浏览器中使用:localhost:8080查看数据库,因此它设置正确,运行良好。 我是这样运行的: docker运行-d-p 5432:5432--name bagdb-postgres-v/var/lib/bagdb-postgres:/v
问题内容: 我最近一直在研究Docker和QGIS,并按照本教程中的说明安装了一个容器。 尽管我无法连接到包含我的所有GIS数据的localhost postgres数据库,但一切工作都很好。我认为这是因为我的postgres数据库未配置为接受远程连接,并且已经按照本文中的说明编辑了postgres conf文件以允许远程连接。 尝试连接到在Docker中运行QGIS的数据库时,我仍然收到错误消息
我最近一直在玩Docker和QGIS,并按照本教程中的说明安装了一个容器。 我运行的是Ubuntu 14.04;Postgres 9.3
我有一个用spring boot开发的微服务,它与mongodb连接。在本地运行时,一切正常。当我为我的微服务(而不是mongodb)创建docker容器时,我收到一个错误“连接被拒绝”。我曾在“localhost:27017”和“127.0.0.1:27017”连接到我的mongodb,但这两个都不起作用。我知道问题出在这个地址上,因为docker使用的网络适配器与服务器不同,但我找不到如何配置