
Odoo Docker镜像是基于官方Odoo开源企业资源规划(ERP)和客户关系管理(CRM)平台构建的容器化部署方案。该镜像旨在简化Odoo的安装、配置和运行流程,通过容器化技术确保环境一致性、隔离性和可移植性,适用于开发、测试、演示及小型生产环境。
Odoo集成了销售、采购、库存、会计、人力资源等企业管理模块,Docker镜像则进一步降低了其部署门槛,用户无需手动配置依赖(如Python环境、数据库等),可快速启动完整的Odoo服务。
16.0、17.0),适配不同用户需求。快速搭建本地开发环境,隔离不同项目的Odoo版本和依赖,支持模块开发调试。
验证Odoo新版本功能、自定义模块兼容性或配置变更,测试完成后可快速销毁容器,不影响主机环境。
适用于中小企业或团队,通过Docker Compose管理Odoo与PostgreSQL容器,简化运维流程。
快速启动临时Odoo实例,用于产品演示、员工培训或教学场景,降低部署成本。
docker run命令)通过docker run直接启动Odoo容器(需提前准备PostgreSQL数据库,或使用外部数据库)。
4.2.1 连接外部PostgreSQL
bashdocker run -d \ --name odoo \ -p 8069:8069 \ # 映射Odoo默认端口(HTTP) -e ODOO_DB_HOST=192.168.1.100 \ # 外部PostgreSQL主机IP/域名 -e ODOO_DB_PORT=5432 \ # PostgreSQL端口(默认5432) -e ODOO_DB_USER=odoo \ # 数据库用户名 -e ODOO_DB_PASSWORD=odoo_db_pass \ # 数据库密码 -e ODOO_DB_NAME=odoo_prod \ # 数据库名称(若不存在将自动创建) -v odoo_data:/var/lib/odoo \ # 挂载数据卷(持久化Odoo数据) odoo:17.0 # 指定镜像版本(如17.0)
推荐通过Docker Compose管理Odoo与PostgreSQL容器,简化多容器协作。
4.3.1 创建docker-compose.yml文件
yamlversion: '3.8' services: odoo: image: odoo:17.0 container_name: odoo restart: always ports: - "8069:8069" # HTTP端口 - "8072:8072" # 长轮询端口(可选,用于实时通知) environment: - ODOO_DB_HOST=db # 数据库服务名(与PostgreSQL服务名一致) - ODOO_DB_PORT=5432 - ODOO_DB_USER=odoo # 数据库用户名(需与PostgreSQL配置一致) - ODOO_DB_PASSWORD=odoo_db_pass # 数据库密码 - ODOO_ADMIN_PASSWORD=admin_pass # Odoo管理员密码(首次登录使用) - LOG_LEVEL=info # 日志级别(debug/info/warn/error) volumes: - odoo_data:/var/lib/odoo # Odoo数据持久化 - ./addons:/mnt/extra-addons # 挂载自定义模块目录(本地路径) - ./config:/etc/odoo # 挂载自定义配置文件(可选) depends_on: - db # 依赖PostgreSQL服务,确保数据库先启动 db: image: postgres:14 # Odoo 17推荐PostgreSQL 14(版本需匹配) container_name: odoo_db restart: always environment: - POSTGRES_USER=odoo # 数据库用户名(需与Odoo配置一致) - POSTGRES_PASSWORD=odoo_db_pass # 数据库密码 - POSTGRES_DB=postgres # 初始数据库名称(Odoo会自动创建目标库) volumes: - postgres_data:/var/lib/postgresql/data # 数据库数据持久化 healthcheck: test: ["CMD-SHELL", "pg_isready -U odoo"] # 健康检查:验证数据库是否就绪 interval: 10s timeout: 5s retries: 5 volumes: odoo_data: # Odoo数据卷(自动创建) postgres_data: # PostgreSQL数据卷(自动创建)
4.3.2 启动服务
在docker-compose.yml所在目录执行:
bashdocker-compose up -d # 后台启动服务
4.3.3 停止服务
bashdocker-compose down # 停止并删除容器(数据卷保留) # 如需删除数据卷(谨慎操作):docker-compose down -v
Odoo容器支持通过环境变量配置核心参数,常用变量如下:
| 环境变量名 | 说明 | 默认值 | 示例值 |
|---|---|---|---|
ODOO_DB_HOST | PostgreSQL数据库主机IP/域名 | db | 192.168.1.100 |
ODOO_DB_PORT | PostgreSQL端口 | 5432 | 5433 |
ODOO_DB_USER | 数据库用户名 | odoo | odoo_admin |
ODOO_DB_PASSWORD | 数据库密码 | - | StrongPass123! |
ODOO_DB_NAME | 目标数据库名称(不存在则自动创建) | odoo | odoo_production |
ODOO_ADMIN_PASSWORD | Odoo管理员密码(首次登录使用) | - | Admin@2024 |
LOG_LEVEL | 日志级别 | info | debug |
ODOO_SSL | 是否启用SSL(True/False) | False | True |
WORKERS | 工作进程数(建议:CPU核心数×2+1) | 自动计算 | 4 |
为避免容器销毁后数据丢失,需挂载以下目录作为数据卷:
| 容器内路径 | 用途 | 建议挂载方式 |
|---|---|---|
/var/lib/odoo | Odoo核心数据(数据库缓存、附件等) | Docker命名卷(如odoo_data) |
/mnt/extra-addons | 自定义模块目录 | 主机目录(如./addons) |
/etc/odoo | 配置文件目录(如odoo.conf) | 主机目录(如./config) |
若需修改Odoo核心配置(如SMTP邮件服务器、日志路径等),可通过挂载自定义odoo.conf文件实现:
在主机创建配置文件(如./config/odoo.conf),内容示例:
ini[options] admin_passwd = Admin@2024 # 管理员密码(优先级高于环境变量) db_host = db db_port = 5432 db_user = odoo db_password = odoo_db_pass logfile = /var/log/odoo/odoo.log # 日志路径 addons_path = /usr/lib/python3/dist-packages/odoo/addons,/mnt/extra-addons # 模块路径(默认+自定义) smtp_server = smtp.example.com # SMTP服务器 smtp_port = 587 smtp_user = user@example.com smtp_password = smtp_pass
在docker-compose.yml中挂载该文件:
yamlvolumes: - ./config/odoo.conf:/etc/odoo/odoo.conf # 直接挂载单个配置文件
4.7.1 安装自定义模块
将自定义模块(.zip或解压后的文件夹)放入主机./addons目录(需与/mnt/extra-addons挂载路径对应),然后在Odoo后台「应用」→「应用商店」→「更新应用列表」,即可看到并安装模块。
4.7.2 安装官方模块
通过Odoo后台「应用」搜索模块名称(如“销售管理”),点击「安装」即可自动下载并启用。
bashdocker run -d \ --name odoo_demo \ -p 8069:8069 \ -e ODOO_DB_HOST=10.0.0.5 \ -e ODOO_DB_PORT=5432 \ -e ODOO_DB_USER=demo_user \ -e ODOO_DB_PASSWORD=demo_pass \ -e ODOO_DB_NAME=demo_db \ -e ODOO_ADMIN_PASSWORD=demo_admin \ -v odoo_demo_data:/var/lib/odoo \ odoo:17.0
yamlversion: '3.8' services: odoo: image: odoo:17.0 restart: always ports: - "80:8069" # HTTP端口(可通过Nginx反向代理SSL) - "443:8072" # HTTPS端口(需配置SSL证书) environment: - ODOO_DB_HOST=db - ODOO_DB_PORT=5432 - ODOO_DB_USER=odoo_prod - ODOO_DB_PASSWORD=ProdPass@2024 - ODOO_DB_NAME=odoo_prod - ODOO_ADMIN_PASSWORD=Admin@Prod2024 - LOG_LEVEL=warn - ODOO_SSL=True - WORKERS=8 # 假设主机为4核CPU volumes: - odoo_data:/var/lib/odoo - ./addons:/mnt/extra-addons - ./config:/etc/odoo - ./ssl:/etc/odoo/ssl # 挂载SSL证书(如fullchain.pem、privkey.pem) - ./backups:/var/backups/odoo # 备份目录 depends_on: db: condition: service_healthy db: image: postgres:14 restart: always environment: - POSTGRES_USER=odoo_prod - POSTGRES_PASSWORD=ProdPass@2024 - POSTGRES_DB=postgres volumes: - postgres_data:/var/lib/postgresql/data - ./db_backups:/var/backups/postgres # 数据库备份目录 healthcheck: test: ["CMD-SHELL", "pg_isready -U odoo_prod"] interval: 10s timeout: 5s retries: 5 # 可选:添加定时备份服务(如使用postgres-backup容器) db_backup: image: prodrigestivill/postgres-backup-local restart: always depends_on: - db environment: - POSTGRES_HOST=db - POSTGRES_USER=odoo_prod - POSTGRES_PASSWORD=ProdPass@2024 - POSTGRES_DB=odoo_prod - BACKUP_DIR=/backups - BACKUP_SUFFIX=-%Y%m%d_%H%M%S - BACKUP_KEEP_DAYS=7 # 保留7天备份 volumes: - ./db_backups:/backups volumes: odoo_data: postgres_data:
odoo_data和postgres_data卷,避免数据丢失。WORKERS参数(公式:WORKERS = 2×CPU核心数 + 1)。以下是 mekomsolutions/odoo 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务