使用Docker安装mmpose
1.进入mmpose的github中git clone
git clone https://github.com/open-mmlab/mmpose.git
2.进入mmpose/docker目录下,build images镜像
# build an image with Pytorch 1.6.0, CUDA 10.1, CUDNN 7.
sudo docker build -f Dockerfile --rm -t mmpose:v1 .
-f 后接路径
-rm 指制作镜像时所产生的中间容器删除
-t 镜像名称:tag
最后的.表示在当前目录下创建镜像
使用sudo docker images查看镜像是否制作完成
3.创建容器
sudo docker run --it --name xxx --gpus all mmpose:v1 # *1
# 在容器中运行nvidia-smi会出现和终端中运行相同的结果
4.运行github中的demo
python demo/top_down_img_demo.py \
configs/animal/2d_kpt_sview_rgb_img/topdown_heatmap/macaque/res50_macaque_256x192.py \
https://download.openmmlab.com/mmpose/animal/resnet/res50_macaque_256x192-98f1dd3a_20210407.pth \
--img-root tests/data/macaque/ --json-file tests/data/macaque/test_macaque.json \
--out-img-root vis_results
# 运行成功后可以在docker中的vis_results文件夹中查看结果
Docker的使用
#创建容器
sudo docker run --it --name xxx --rm mmpose:v1
sudo docker run -i -t --name xxx --gpus all mmpose:v1
# 查看容器
sudo docker ps
sudo dockr ps -a
# 查看镜像
sudo docker images
# 停止/启动/打开/删除 容器
sudo docker stop CONTAINER ID
sudo docker start NAMES
sudo docker exec -i -t NAMES /bin/bash
sudo docker rm CONTAINER ID
过程中遇到的问题
*1
使用–gpus出现
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
需要配置docker20使用gpu,装官方提供的toolki:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
此时再使用
sudo docker run -i -t --name xxx --gpus all mmpose:v1
*2
sudo docker run --runtime=nvidia --name test -i -t mmpose:v1 /bin/bash
# 运行报错
docker: Error response from daemon: Unknown runtime specified nvidia.
See 'docker run --help'.
需要安装nvidia-docker2,可用通过下列命令查看是否安装nvidia-docker2
sudo nvidia-docker image ls
sudo apt-get install -y nvidia-docker2
sudo systemctl daemon-reload
sudo systemctl restart docker
# 再次运行
sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
在vscode中使用docker
安装Remote - Containers和Docker两个插件
点击左下角的SSH,选择Reopen in Container 或者Open Folder in Container,显示权限不够,需要将普通用户增加到docker组中
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将当前用户添加至docker用户组
newgrp docker #更新docker用户组
重启vscode