UNRAID 上部署多个 Streamlit 应用

作者20255个月前 (08-03)其他506

✅ 部署多个 Streamlit 实例的关键点

项目要做的事情示例(第二个实例)
📁 应用目录每个应用要有独立的目录/mnt/user/appdata/streamlit_app2/
📄 app.py 内容每个项目的代码可以不同(也可相同)streamlit_app2/app.py
📦 Docker 镜像名建议为不同名称,但可复用同一镜像streamlit-app(可共用)
🐳 容器名称必须唯一--name streamlit-demo2
🌐 对外端口必须不重复-p 8502:8501(容器内部都是 8501)

🧱 示例:部署第二个 Streamlit 应用

1. 复制第一套项目目录

bashCopyEditcp -r /mnt/user/appdata/streamlit_demo /mnt/user/appdata/streamlit_app2

或者自己创建一个新的目录,放入新的 app.pyrequirements.txt 等。


2. 构建(可复用已有镜像)

如果内容差不多,可以直接用已有镜像 streamlit-app,无需重建。


3. 运行新容器(改端口和容器名)

bashCopyEditdocker run -d \
  --name streamlit-demo2 \
  -p 8502:8501 \
  -v /mnt/user/appdata/streamlit_app2:/app \
  streamlit-app

4. 访问方式

打开浏览器访问:

cppCopyEdithttp://[UNRAID IP]:8502

🚀 可选:多个 docker-compose.yml 管理多个实例

你也可以使用多个 docker-compose.yml 文件,例如放在不同目录内分别管理:

swiftCopyEdit/mnt/user/appdata/streamlit_demo/docker-compose.yml/mnt/user/appdata/streamlit_app2/docker-compose.yml

然后分别运行:

bashCopyEditdocker-compose up -d

✅ 总结

| 可以共享镜像 | ✅ 是的(streamlit-app 可通用) |
| 需要独立容器和端口 | ✅ 每个容器用不同的 --name-p 映射端口 |
| 可同时运行多个? | ✅ 完全可以,同时访问不同端口即可 |
| 适合什么场景? | 多个项目演示、模块独立部署、团队协作开发等 |


相关文章

openwrt软路由(x86)做打印服务器,用docker安装cups/airprint

openwrt软路由(x86)做打印服务器,用docker安装cups/airprint

记录一下,免得下次重装又不会,有需要的参考一下。在新版的软路由系统里已经集成了通过 TCP/IP 共享 USB 打印服务,但对于链接与实用性不太好,IStore里的cups又没几个驱动,那我们就可以用...

一些网址搜集

Jack's 新学习基地https://nstudy.org/openwrt固件下载地址https://firmware-selector.openwrt.org/ 7~10代核显驱动:htt...

zerotier搭建虚拟局域网,自建planet

zerotier搭建虚拟局域网,自建planet

https://github.com/xubiaolin/docker-zerotier-planet 项目地址基于该开源项目 自建planet节点,更快速,更安全本教程依据docker-z...

UNRAID 系统中安装 Docker 版的 MySQL

在 UNRAID 系统中安装 Docker 版的 MySQL,可以通过图形界面(Unraid Web UI)轻松完成。下面是 详细的步骤和方法:✅ 前提条件已安装并运行 UNRAID 系统UNRAID...

基岩版-我的世界服务器升级

基岩版-我的世界服务器升级

1. 前言PC端启动Minecraft Launcher后进入基岩版我的世界,如果有更新会自动更新到最新版本,更新后再连接自己部署的游戏服务器,则会无法连接并提示“主机使用的是较旧版本的《我的世界》。...

基岩版-我的世界 单人记录导入到docker版本

要将 Minecraft Windows 基岩版(Bedrock Edition) 单人模式下的地图(世界数据)导入到 Docker 部署的 Bedrock Dedicated Server(BDS)...