You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建Odoo15 Docker容器遇数据库域名解析失败问题求助

解决Odoo15容器数据库连接失败(无法解析"db"主机名)问题

核心原因

Odoo容器无法在指定的odoonet网络中找到名为db的数据库容器,导致DNS解析失败,进而触发连接错误,容器启动后自动停止。


分步解决方案

1. 验证数据库容器状态与网络归属

  • 检查db容器是否存在且运行:

    docker ps -a
    

    若db未运行,执行docker start db启动;若容器不存在,需先创建兼容的Postgres容器(见步骤3)。

  • 确认db容器已加入odoonet网络:

    docker inspect db | grep -A5 Networks
    

    若输出无odoonet,手动将容器加入网络:

    docker network connect odoonet db
    

2. 替换废弃的--link特性

--link是Docker旧版通信方式,当前推荐通过自定义网络实现容器互通。修改启动命令,移除--link db:db并显式指定数据库连接参数:

sudo docker run -v /home/contenedor/config:/etc/odoo \
  -v /home/contenedor/odoo:/var/lib/odoo/.local/share/Odoo \
  --expose 80 \
  --net odoonet \
  -e VIRTUAL_HOST=domain.com \
  -e VIRTUAL_PORT=8069 \
  -e HOST=db \
  -e USER=odoo \
  -e PASSWORD=odoo \
  --name contenedor \
  -t odoo:15.0

注意:USER和PASSWORD必须与Postgres容器的配置完全一致。

3. 创建兼容的Postgres数据库容器(若未创建)

Odoo15适配Postgres 12-13版本,执行以下命令创建db容器:

sudo docker run -d \
  --name db \
  --net odoonet \
  -e POSTGRES_USER=odoo \
  -e POSTGRES_PASSWORD=odoo \
  -e POSTGRES_DB=postgres \
  postgres:13

4. 测试网络连通性

在odoonet网络中启动临时容器,验证db主机的解析能力:

docker run --rm --net odoonet alpine ping -c 3 db

若ping失败,重建网络后重启所有容器:

docker network rm odoonet
docker network create odoonet
docker start db
# 重新启动Odoo容器

5. 查看容器日志定位深层问题

若以上步骤无效,查看Odoo容器完整日志获取细节:

docker logs contenedor

日志可能暴露用户密码不匹配、数据库未初始化等隐藏问题。


内容的提问来源于stack exchange,提问作者IT-Support Colombia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:02:31