Odoo 19.0 Docker Desktop快速部署 和Ubuntu24上安装1panel面板

https://www.odoo.com/documentation/master/administration/on_premise.html

摘要:本文介绍了通过Docker快速部署Odoo企业管理系统的方法。首先需拉取官方Odoo 19.0镜像和PostgreSQL 13数据库镜像,然后分别启动数据库容器(配置用户名/密码/数据卷)和Odoo容器(链接数据库并映射8069端口)。最后通过浏览器访问localhost:8069完成初始化。针对Windows系统C盘空间占用问题,详细说明了如何将Docker数据从C盘迁移至D盘,包括WSL数据导出/导入、修改Docker Desktop存储路径等关键步骤,确保数据安全转移并释放C盘空间。

通过 Docker 快速部署 Odoo

使用官方 Odoo 镜像(推荐)

1. 拉取 Odoo 官方镜像(建议指定版本,如 19.0)

复制代码
docker pull odoo:19.0 

2. 拉取 PostgreSQL 镜像(Odoo 依赖的数据库)

复制代码
docker pull postgres:13

3. 启动 PostgreSQL 数据库容器

docker run -d \

--name odoo-db \

-e POSTGRES_USER=odoo \

-e POSTGRES_PASSWORD=odoo123 \

-e POSTGRES_DB=postgres \

-v odoo-db-data:/var/lib/postgresql/data \

-p 5432:5432 \

postgres:13

复制代码
docker run -d --name odoo-db -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo123 -e POSTGRES_DB=postgres -e POSTGRES_INITDB_ARGS="--encoding=UTF8 --lc-collate=C --lc-ctype=C" -e PGDATA=/var/lib/postgresql/data/pgdata -v odoo-db-data:/var/lib/postgresql/data -p 5432:5432 postgres:13

> 说明:

> - POSTGRES_USER:数据库用户名(odoo)

> - POSTGRES_PASSWORD:数据库密码(可自定义,如 odoo123)

> - POSTGRES_DB:初始数据库名(默认 postgres 即可)

> - -v:数据卷持久化,防止数据丢失

> - -p:将容器的 5432 映射到主机的 5432 端口

4. 启动 Odoo 容器并连接数据库

docker run -d \

--name odoo \

--link odoo-db:db \

-p 8069:8069 \

-e HOST=db \

-e USER=odoo \

-e PASSWORD=odoo123 \

odoo:19.0

一键获取完整项目代码

复制代码
docker run -d   --name odoo   --link odoo-db:db   -p 8069:8069  -e HOST=db   -e USER=odoo   -e PASSWORD=odoo123  odoo:19.0

> 说明:

> - --link:连接之前启动的数据库容器(名称为 odoo-db)

> - -p 8069:8069:将 Odoo 默认端口映射到主机

> - -e 参数传递数据库连接信息(与上方 POSTGRES_* 保持一致)

5. 访问 Odoo

打开浏览器,访问:http://localhost:8069

按提示设置超级管理员密码,完成初始化。

解决Docker Desktop C 盘原路径占用

一、Windows (WSL2 模式,默认) 迁移(最常用)

1. 准备工作

  • 关闭 Docker Desktop:右键托盘图标 → Quit Docker Desktop

  • 管理员身份 打开 PowerShell

  • 新建目标目录(例如 D 盘): powershell

    复制代码
    mkdir D:\Docker\wsl\data
    mkdir D:\Docker\wsl\distro

2. 停止并确认 WSL 状态

powershell

复制代码
wsl --shutdown
wsl --list -v

确保 docker-desktopdocker-desktop-data 状态都是 Stopped

3. 导出现有数据(备份)

powershell

复制代码
# 导出数据盘(镜像/容器/卷都在这里)
wsl --export docker-desktop-data D:\Docker\wsl\data\docker-desktop-data.tar

# 导出程序盘(可选,建议一起迁移)
wsl --export docker-desktop D:\Docker\wsl\distro\docker-desktop.tar

你遇到的 WSL_E_DISTRO_NOT_FOUND 错误,核心原因是当前系统里 WSL 分发版的名称不是默认的 docker-desktop-data(可能是 Docker 版本更新 / 安装方式导致名称变化)。我先帮你找到正确的分发版名称,再修正迁移步骤,确保能成功导出数据。

4. 注销原 WSL 实例(释放 C 盘空间)

powershell

复制代码
wsl --unregister docker-desktop-data
wsl --unregister docker-desktop

5. 导入到新目录(关键)

powershell

复制代码
# 导入数据盘到 D 盘
wsl --import docker-desktop-data D:\Docker\wsl\data D:\Docker\wsl\data\docker-desktop-data.tar --version 2

# 导入程序盘到 D 盘
wsl --import docker-desktop D:\Docker\wsl\distro D:\Docker\wsl\distro\docker-desktop.tar --version 2

6. 启动 Docker Desktop 验证

  • 打开 Docker Desktop,等待启动完成
  • 执行 docker images,所有镜像都在
  • 原 C 盘路径 C:\Users\<你>\AppData\Local\Docker\wsl 已被清空

一、先回答你的核心问题

清空原 C 盘路径后,镜像不会还在 C 盘 ,但你必须在设置里把 Disk image location 改成 D 盘新路径,否则 Docker Desktop 会默认重新在 C 盘创建数据目录,导致 C 盘又被占用。


二、完整操作步骤(结合你当前的设置界面)

1. 先完成 WSL 数据迁移(你已经在做的步骤)

按之前的流程,把 docker-desktop-datadocker-desktop 导出、注销、导入到 D 盘新目录(D:\Docker\wsl\dataD:\Docker\wsl\distro)。

2. 在 Docker Desktop 设置里修改路径(关键一步)

打开 Docker Desktop → Settings → Resources → Advanced

  • 点击右侧 Browse 按钮
  • 选择你迁移后的目标目录:D:\Docker\wsl
  • 点击 Apply & Restart 保存设置

这一步是告诉 Docker Desktop:"以后所有镜像、容器、数据都存在 D 盘这个位置",避免它再往 C 盘写数据。

3. 验证数据位置
  • 打开文件资源管理器,进入 D:\Docker\wsl\data,能看到 ext4.vhdx 虚拟磁盘文件(大小和你之前 C 盘的一致)
  • 原 C 盘路径 C:\Users\Administrator\AppData\Local\Docker\wsl 会被清空,不再占用空间
  • 执行 docker images,所有镜像正常显示,说明数据已完整迁移到 D 盘

三、常见误区澄清

  • ❌ 误区:"我已经把 WSL 数据导入到 D 盘了,不用改设置也没事"✅ 真相:如果不改 Disk image location,Docker Desktop 启动时会默认在 C 盘重建数据目录,导致新下载的镜像又回到 C 盘。
  • ❌ 误区:"清空 C 盘原路径后,镜像会丢失"✅ 真相:镜像已经被打包进 ext4.vhdx 并迁移到 D 盘,只要 WSL 导入成功,镜像就不会丢失。

四、最终确认

完成以上两步后:

  1. 所有已下载的镜像 :存储在 D 盘的 ext4.vhdx 虚拟磁盘中
  2. 未来新下载的镜像:Docker Desktop 会自动存到 D 盘新路径
  3. C 盘原路径不再被 Docker 占用,空间彻底释放

API 开发

Odoo 支持 API 密钥 ,并且(根据模块或设置**)可能需要这些**密钥来执行 Webservice作。

在脚本中使用API密钥的方法是简单地用密钥**替换密码。**登录仍然处于使用状态。你应该同样小心地存储API密钥 作为密码,因为它们本质上为你的用户提供相同的访问权限 账户(尽管无法通过界面登录)。

要为账户添加密钥,只需进入你的偏好设置(或我的个人资料):

然后打开账户安全标签,点击新 API 密钥:

使用API 收费的还是要收费 不太好

建议基于数据库自己研究

ubuntu24安装 1panel

第一步:更新系统

sudo apt update

sudo apt upgrade

第二步:安装1panel,运行如下命令

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

bash 复制代码
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

到这里,说明1panel已安装完毕,只要你服务器 的防火墙是关闭的,现在可以去上面给的地址登录了

第三步:登录测试,在浏览器 上打开刚才的地址,输入账号密码即可登录

应用商店访问不到

最好的方式上是翻墙QAQ

https://blog.csdn.net/xueyong0403/article/details/136051332

https://openclaw.club/zh-cn/guides/quick-start

15分钟快速了解 Odoo

https://blog.csdn.net/cao919/article/details/157548333?fromshare=blogdetail&sharetype=blogdetail&sharerId=157548333&sharerefer=PC&sharesource=cao919&sharefrom=from_link

相关推荐
用户03284722207013 小时前
如何搭建本地yum源(上)
运维
武子康14 小时前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造