1.拉取openpose官方镜像
docker pull mjsobrep/openpose
2.创建容器
docker run --gpus all --device=/dev/video4 -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY -it mjsobrep/openpose /bin/bash
--gpus all
:允许容器使用所有可用的 GPU--device :使用的
主机的摄像头设备- -v:将主机的
/tmp/.X11-unix
目录挂载到容器的/tmp/.X11-unix
,这允许容器使用主机的 X11 显示系统 - -e:允许在容器内运行的应用程序使用主机的图形界面
/bin/bash
:启动容器后执行/bin/bash
,即在容器内启动一个 Bash shell
如果遇到报错
解决方案:
#配置存储库
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey |sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \
&& sudo apt-get update
# 安装 nvidia-container-toolkit
sudo apt-get install -y nvidia-container-toolkit
#使用 nvidia-ctk 命令配置容器运行时
sudo nvidia-ctk runtime configure --runtime=docker
# 重启Docker daemon 来完成设定默认运行时后的安装
sudo systemctl restart docker
3.启动容器
# 查看所有containers
docker ps -a
#启动容器mjsobrep/openpose
docker start container_id
# 连接到正在运行中的容器mjsobrep/openpose
docker attach container_id
4.调用摄像头进行骨骼识别
./build/examples/openpose/openpose.bin