Linux 带有DB到Docker容器的主机端口

Linux 带有DB到Docker容器的主机端口,linux,docker,port,Linux,Docker,Port,我有一个带有PostgreSQL和Docker容器的主机。PostgreSQL在5432端口上工作。Docker容器必须连接到数据库。如何通过Dockerfile或run命令将容器与数据库连接公开5432和docker run-p 5432:5432…没有帮助。从页面: 有时,您需要从内部连接到Docker主机 容器。要启用此功能,请将Docker主机的IP地址传递给 使用--addhost标志的容器。要查找主机地址,请使用 ip addr show命令 EXPOSE或-p标记的工作方式与此相反

我有一个带有PostgreSQL和Docker容器的主机。PostgreSQL在5432端口上工作。Docker容器必须连接到数据库。如何通过Dockerfile或run命令将容器与数据库连接<代码>公开5432和
docker run-p 5432:5432…
没有帮助。

从页面:

有时,您需要从内部连接到Docker主机 容器。要启用此功能,请将Docker主机的IP地址传递给 使用
--addhost
标志的容器。要查找主机地址,请使用
ip addr show
命令


EXPOSE
-p
标记的工作方式与此相反,例如将容器端口发布到您不需要的主机。

或仅连接到PostgreSQL主机的IP。
$ HOSTIP=`ip -4 addr show scope global dev eth0 | grep inet | awk '{print \$2}' | cut -d / -f 1`
$ docker run  --add-host=docker:${HOSTIP} --rm -it busybox telnet docker 5432