在 macOS 上升级 OpenWebUI 及配置 MySQL 的记录
这篇文章记录在 macOS(Mac Studio M3U)上用 Docker 升级 OpenWebUI 和配置 MySQL 的过程,时间从 2025 年 3 月 21 日到 4 月 18 日。以下整理了控制台日志,分享遇到的问题和解决办法,供大家参考。
升级 OpenWebUI 过程
2025 年 3 月 21 日:首次部署
开始升级 OpenWebUI,用 Docker 拉取最新镜像:
lua
docker pull ghcr.io/open-webui/open-webui:main
镜像顺利下载:
arduino
main: Pulling from open-webui/open-webui
...
Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main
运行容器,映射 3000 端口到 8080,挂载卷保存数据:
arduino
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
容器启动成功(ID: 1abdea4d462e...
)。但再次运行相同命令时,报错:
vbnet
docker: Error response from daemon: Conflict. The container name "/open-webui" is already in use...
原因是 Docker 容器名称不能重复,需先删除旧容器。
2025 年 4 月 3 日:更新 OpenWebUI
4 月 3 日,更新 OpenWebUI 到最新版本。先删除旧容器:
arduino
docker rm -f open-webui
再次拉取最新镜像:
lua
docker pull ghcr.io/open-webui/open-webui:main
镜像下载完成:
arduino
main: Pulling from open-webui/open-webui
...
Digest: sha256:11abf22808c676cbbff9777f7d9c24ef269fd20b423846c2379c1f77fe085843
Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main
运行新容器,配置不变:
arduino
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
新容器(ID: 6df6d5c89b71...
)启动,OpenWebUI 可通过 http://localhost:3000
访问。
2025 年 4 月 18 日:最后更新
4 月 18 日,再次更新确保最新版本。步骤如下:
- 删除旧容器:
arduino
docker rm -f open-webui
- 拉取最新镜像:
lua
docker pull ghcr.io/open-webui/open-webui:main
镜像下载完成:
arduino
main: Pulling from open-webui/open-webui
...
Digest: sha256:3039364e82311729e0737bf9bdd877e6b0aa84a02a7b4f220506b28c8d3181cb
Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main
- 运行新容器:
arduino
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
新容器(ID: 0d1f325d5504...
)启动,升级完成。
配置 MySQL 过程
2025 年 3 月 21 日:部署 MySQL
为其他用途配置 MySQL 数据库。第一次尝试拉取镜像:
docker pull mysql:8.0.41-debian
失败,报错:
bash
no matching manifest for linux/arm64/v8 in the manifest list entries
原因是 Mac Studio 的 ARM64 架构不支持该镜像。改用通用标签:
docker pull mysql:8.0.41
镜像下载成功:
makefile
8.0.41: Pulling from library/mysql
...
Status: Downloaded newer image for mysql:8.0.41
创建 Docker 卷保存 MySQL 数据:
kotlin
docker volume create mysql-data
运行 MySQL 容器:
css
docker run -d \
--name mysql-container \
-e MYSQL_ROOT_PASSWORD=B8e2R8R3y \
-p 3306:3306 \
-v mysql-data:/var/lib/mysql \
mysql:8.0.41
容器启动(ID: bcabed338858...
)。但本地连接 MySQL 失败:
css
mysql -h 127.0.0.1 -P 3306 -u root -p
zsh: command not found: mysql
原因是本地未安装 MySQL 客户端,可通过 Homebrew 安装(brew install mysql
),我暂时未处理。
总结
升级 OpenWebUI 是拉取最新镜像、删除旧容器、运行新容器的简单流程。配置 MySQL 是独立操作,重点是选择 ARM64 兼容的镜像并设置数据持久化。遇到的问题包括容器名称冲突和架构兼容性,通过调整命令解决。最终,OpenWebUI 跑在 http://localhost:3000
,MySQL 监听 3306 端口,数据都用 Docker 卷保存。关键点如下:
- Docker 环境:确保 Docker 装好,macOS 用 Docker Desktop,CLI 要在 PATH 中。
- 容器名称 :重复运行前删旧容器(
docker rm -f <容器名>
)。 - 架构支持:ARM64 系统用通用镜像标签,避免兼容问题。
- 数据保存 :用 Docker 卷(
-v
)持久化 OpenWebUI 和 MySQL 数据。 - MySQL 客户端 :本地操作 MySQL 需装客户端(
brew install mysql
)。
这套流程简单,适合快速部署 OpenWebUI 或 MySQL。
软件官网地址
- Docker Desktop : www.docker.com/products/do...
- OpenWebUI : openwebui.com/
- MySQL : www.mysql.com/