在Ubuntu服务器上部署Label Studio

一、拉取镜像

docker pull heartexlabs/label-studio:latest

二、启动容器

(回到用户目录,例:输入pwd,显示 /home/<user>)

docker run -d --name label-studio -it -p 8081:8080 -v $(pwd)/mydata:/label-studio/data heartexlabs/label-studio:latest
# 访问网址
http://localhost:8081

三、遇到的问题

1.对用户目录没有操作权限

输入启动容器的命令后,出现报错,无法运行该命令,尝试在用户目录下创建mydata文件夹后,出现新的报错

# 问题显示
=> Database and media directory: /label-studio/data
=> Static URL is set to: /static/
Traceback (most recent call last):
  File "/label-studio/.venv/bin/label-studio", line 3, in <module>
    from label_studio.server import main
  File "/label-studio/label_studio/server.py", line 23, in <module>
    from label_studio.core.argparser import parse_input_args
  File "/label-studio/label_studio/core/argparser.py", line 5, in <module>
    from .settings.base import EXPORT_DIR
  File "/label-studio/label_studio/core/settings/base.py", line 461, in <module>
    os.makedirs(MEDIA_ROOT, exist_ok=True)
  File "<frozen os>", line 225, in makedirs
PermissionError: [Errno 13] Permission denied: '/label-studio/data/media'

解决:对mydata文件夹设置权限

# 将 mydata 目录及其子目录归属权改为当前用户
sudo chown -R $(whoami):$(whoami) ./mydata

2.查看并删除已停止的容器

# 查看所有容器(包括已停止的)
docker ps -a

# 根据容器 ID 或名称逐个删除
docker rm container_id_1 container_id_2 container_id_3

3.解析原命令

解析命令:docker run -it -p 8081:8080 -v $(pwd)/mydata:/label-studio/data heartexlabs/label-studio:latest
1. ‌基础命令结构‌

docker run‌:创建并启动一个新容器的主命令。

2. ‌参数解析‌

(1) -it‌
作用‌:以交互模式运行容器,并分配一个伪终端(pseudo-TTY)。
-i:保持标准输入(STDIN)打开,允许与容器交互。
-t:分配终端,使命令在交互式环境中运行(如 Shell)。
典型场景‌:需直接在容器内执行命令(如调试或操作容器内 Shell)。

(2) -p 8081:8080‌
作用‌:端口映射,将宿主机端口 8081 绑定到容器端口 8080。
访问宿主机 http://localhost:8081 可连接到容器的 8080 端口服务。
格式说明‌:宿主机端口:容器端口,需确保宿主机端口未被占用。

(3) -v $(pwd)/mydata:/label-studio/data‌
作用‌:数据卷挂载,将宿主机目录 $(pwd)/mydata 挂载到容器的 /label-studio/data 目录。
$(pwd):当前 Shell 的工作目录(例如 /home/user),实际挂载路径为 /home/user/mydata。
容器内对 /label-studio/data 的读写会同步到宿主机的 mydata 目录,实现数据持久化。
注意‌:
若宿主机目录 mydata 不存在,Docker 会默认创建。
路径需使用绝对路径或 Shell 变量(如 $(pwd))。

(4) heartexlabs/label-studio:latest‌
镜像名称‌:指定从 Docker Hub 拉取的镜像 heartexlabs/label-studio,标签为 latest(最新版本)。
若本地无此镜像,Docker 会自动从仓库拉取。

3. ‌完整命令功能总结‌

通过此命令:

创建并启动‌一个基于 heartexlabs/label-studio 镜像的容器。
交互式运行‌容器,用户可通过终端与容器内进程交互。
端口映射‌允许通过宿主机 8081 端口访问容器内服务。
数据持久化‌确保容器内 /label-studio/data 的数据保存到宿主机本地目录,避免容器删除后数据丢失。

4. ‌潜在问题与注意事项‌

目录权限‌:确保宿主机目录 mydata 对 Docker 进程有读写权限。
端口冲突‌:若宿主机 8081 端口被占用,需修改映射端口(如 -p 8082:8080)。
镜像版本‌:标签 latest 可能随更新变动,建议生产环境使用固定版本(如 heartexlabs/label-studio:1.0.0)。

四、参考网址

LabelStudio+YOLO实战:从数据标注到模型训练完整指南

Label Studio+Yolov5实现目标检测预标注(一)

HumanSignal/label-studio: Label Studio is a multi-type data labeling and annotation tool with standardized output format

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值