【发布时间】:2019-10-20 16:13:44
【问题描述】:
我的主机上有一个 postgres 服务器,我想创建一个连接到这个 postgres 服务器的 docker 容器。
所以我想我需要将连接 IP:5432 上的 postgres 服务器公开给 docker。在 docker 上公开 5432 并在 docker 内指定正确的连接信息,例如:
SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://username:password@IP/db_name"
主机 docker IP 是:
docker0 Link encap:Ethernet HWaddr 02:42:b3:d9:eb:e2
inet addr:172.17.0.1 Bcast:172.17.255.255 Mask:255.255.0.0
inet6 addr: fe80::42:b3ff:fed9:ebe2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:213512 errors:0 dropped:0 overruns:0 frame:0
TX packets:351284 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9157933 (9.1 MB) TX bytes:826914241 (826.9 MB)
docker_gwbridge Link encap:Ethernet HWaddr 02:42:5c:b9:3b:0a
inet addr:172.18.0.1 Bcast:172.18.255.255 Mask:255.255.0.0
inet6 addr: fe80::42:5cff:feb9:3b0a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:436 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:64397 (64.3 KB)
我缺少什么以及如何将 postgres 服务器暴露给主机端的相关端口。
【问题讨论】:
-
尝试将 DATBASE_URL 更改为本地主机,如下所示,SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://username:password@localhost/db_name" 然后使用 --network="host" 启动容器。这会将主机网络绑定到访客
标签: postgresql docker