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数据库,或使用外部数据库)。
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容器,简化多容器协作。
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数据卷(自动创建)
在docker-compose.yml所在目录执行:
bashdocker-compose up -d # 后台启动服务
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 = *** smtp_password = smtp_pass
在docker-compose.yml中挂载该文件:
yamlvolumes: - ./config/odoo.conf:/etc/odoo/odoo.conf # 直接挂载单个配置文件
将自定义模块(.zip或解压后的文件夹)放入主机./addons目录(需与/mnt/extra-addons挂载路径对应),然后在Odoo后台「应用」→「应用商店」→「更新应用列表」,即可看到并安装模块。
通过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)。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429