我有PostgreSQL和Docker容器的主机。 PostgreSQL在5432端口上工作。 Docker容器必须连接到数据库。如何通过Dockerfile或运行命令将容器与数据库连接? EXPOSE 5432
和docker run -p 5432:5432 ...
没有帮助。
答案 0 :(得分:1)
来自documentation页面:
有时你需要从你的内部连接到Docker主机 容器。要启用此功能,请将Docker主机的IP地址传递给 容器使用
--add-host
标志。要查找主持人的地址,请使用ip addr show
命令。
$ 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
EXPOSE
或-p
标记以相反的方式工作,例如将容器端口发布到您不想要的主机。