ubuntu22.04 在docker miniconda中安装labelImg和labelme

docker安装

https://www.runoob.com/docker/ubuntu-docker-install.html

下载并执行Docker官方安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

注意这个网站需要全球网络连接

看到这个就是安装成功了
图片
图片
图片

启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker

配置用户docker权限

创建 docker 用户组(如果尚未存在)

sudo groupadd docker

将你的用户加入 docker

sudo usermod -aG docker $USER

$USER 会自动替换成你当前的用户名(如 ubuntualice 等)

重新登录系统(或刷新组权限)

  • 最简单:注销再登录,或者重启终端。
  • 或者运行以下命令立即生效:
newgrp docker

建立docker镜像

要在 Ubuntu 22.04 主机 上创建一个 基于 Ubuntu 22.04 的 Docker 镜像,并安装 Miniconda + labelImg + labelme,你可以使用以下完整的 Dockerfile


建立一个my-conda-docker目录,在这个文件夹下新建空文件Dockerfile,命令如下

cd _PIONEER
mkdir my-conda-docker
cd my-conda-docker
touch Dockerfile  # 建立空文件
📄 完整 Dockerfile
FROM continuumio/miniconda3

# 第一步:安装系统级 XCB/Qt 依赖(Debian 底层必需)
RUN apt update && apt install -y --no-install-recommends \
    # X11 + XCB 核心依赖(解决 Qt xcb 插件问题)
    libx11-6 libx11-xcb1 libxcb1 libxcb-xinerama0 libxcb-cursor0 \
    libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 \
    libxcb-render-util0 libxcb-shape0 libxcb-sync1 libxcb-xfixes0 \
    libxcb-xkb1 libxkbcommon-x11-0 \
    # 补充 labelImg/labelme 运行依赖
    libgl1-mesa-glx libglib2.0-0 \
    # 清理 apt 缓存(减小镜像体积)
    && rm -rf /var/lib/apt/lists/*

# 第二步:Conda 安装 labelme/labelImg(指定 3.10 兼容版本)
RUN conda install -c conda-forge -y \
        python=3.10 \
        labelme \
        labelimg \
        pyqt \
    && conda clean --all --yes

WORKDIR /workspace

# 启动 labelImg(也可改为 labelme,根据需求调整)
CMD ["labelImg"]


🛠️ 构建镜像

Dockerfile 所在目录执行:

docker build -t label-tools .

-t 用于指定docker的标签,类似于名字

执行类似下图所示
图片


▶️ 运行容器(带 GUI 显示)

要在 Ubuntu 22.04 桌面 上看到 labelImg 窗口,需启用 X11 转发

步骤 1:允许容器访问 X server(在终端运行一次)
xhost +local:root

(用完可运行 xhost -local:root 恢复安全)

步骤 2:运行容器
docker run -it --rm \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix:ro \
  -v $(pwd):/workspace \
  label-tools

✅ 成功后,labelImg 窗口将弹出!

💡 你也可以运行 labelme

docker run -it --rm \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix:ro \
  -v $(pwd):/workspace \
  label-tools labelme

📁 目录挂载说明
  • -v $(pwd):/workspace:将当前目录挂载到容器内,方便打开/保存标注文件。
  • 所有操作都在 /workspace 中进行。

✅ 验证安装(可选调试)

进入容器 shell:

docker run -it --rm \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v $(pwd):/workspace \
  --entrypoint /bin/bash \
  label-tools 

可在命令末尾追加

labelImg
# 或
labelme

🧼 清理建议
  • 构建完成后,可用 docker image prune 清理缓存层。
  • 镜像大小约 1.2~1.5 GB(因包含 Conda + Qt 库)。

查看已经安装的docker

docker images

小技巧:创建启动脚本 run.sh

docker run -it --rm \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix:ro \
  -v "$(pwd)":/workspace \
  label-tools "$@"

赋予执行权限:

chmod +x run-labelimg.sh

使用:

./run.sh          # 启动 labelImg
./run.sh labelme  # 启动 labelme
posted @ 2025-12-14 17:06  热爱的力量  阅读(49)  评论(0)    收藏  举报