如何从 docker 连接到与主机位于同一本地网络中的 运行 数据库?
How to connect from docker to database, which is running in the same local network with host machine?
我有两台服务器。首先 - 使用 docker 和特定容器。第二 - 与数据库。
这些服务器位于一个本地网络中。我想从第一台服务器上的容器 运行 连接到第二台服务器的数据库。
我想用docker网络解决这个问题,但是我不知道该怎么办。
试试这个将数据库连接到另一个容器的示例,如文档中所述
好的,我明白了。使用网络驱动程序“桥”可以开箱即用。
默认情况下,容器使用驱动程序“bridge”连接到网络,它允许通过主机本地网络中的 ip 从 docker 容器连接。
示例:
容器中带有 postgres 的第一台服务器具有 192.168.0.4 本地 ip。我们应该使用端口转发来允许通过 192.168.0.4:5432 进行连接。
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=1234 -e POSTGRES_USER=admin -e POSTGRES_DB=mydb postgres:latest
容器中带有 postgres 的第二台服务器具有 192.168.0.3 本地 ip。
从这个容器内部通过主机本地 ip 连接 - 有效
psql --username="admin" --host="192.168.0.4" --dbname="mydb"
从第二个服务器的容器中删除网桥不允许这样的连接。
我有两台服务器。首先 - 使用 docker 和特定容器。第二 - 与数据库。 这些服务器位于一个本地网络中。我想从第一台服务器上的容器 运行 连接到第二台服务器的数据库。
我想用docker网络解决这个问题,但是我不知道该怎么办。
试试这个将数据库连接到另一个容器的示例,如文档中所述
好的,我明白了。使用网络驱动程序“桥”可以开箱即用。 默认情况下,容器使用驱动程序“bridge”连接到网络,它允许通过主机本地网络中的 ip 从 docker 容器连接。
示例:
容器中带有 postgres 的第一台服务器具有 192.168.0.4 本地 ip。我们应该使用端口转发来允许通过 192.168.0.4:5432 进行连接。
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=1234 -e POSTGRES_USER=admin -e POSTGRES_DB=mydb postgres:latest
容器中带有 postgres 的第二台服务器具有 192.168.0.3 本地 ip。 从这个容器内部通过主机本地 ip 连接 - 有效
psql --username="admin" --host="192.168.0.4" --dbname="mydb"
从第二个服务器的容器中删除网桥不允许这样的连接。