如何将不在Docker上运行的Odoo连接到在Docker上运行的Postgres容器?

时间:2019-08-29 02:41:04

标签: postgresql docker containers odoo

我正在尝试将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?

1 个答案:

答案 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网络的更多详细信息