我正在尝试将Odoo连接到在Docker中运行的Postgres数据库实例,但是无法弄清楚如何连接它们。我这样创建实例:
$ docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name mydb postgres:10
只有Postgres在Docker中运行,而不是Odoo。我如何将运行在Docker中的Postgres连接到外部Odoo?
答案 0 :(得分:0)
简短地:
您必须打开docker实例的端口
-p 5432:5432
示例:
docker run -d -p 5432:5432 -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name mydb postgres:10
说明
因为使用docker运行容器时,默认情况下它不会暴露给主机网络。因此,当您运行Postgres时,无法在容器外部对其进行访问。为了使其可访问,您可以:
docker run -d -p 5432:5432 ...
docker run --network=host ...
奖金:
如果您希望将来在容器中运行odoo,则可能需要创建一个docker网络docker network create odooNetwork
并将其用于Postgres和Odoo实例:
docker run -d --network=odooNetwork ...
documentation中的有关docker网络的更多详细信息