docker命令解析
命令
docker run --gpus all --rm -it --ipc=host -u $(id -u ${USER}):$(id -g ${USER}) -v /etc/passwd:/etc/passwd -v /etc/group:/etc/group -e TORCH_HOME=/models/torchvision -v $(pwd)/models:/models -v $(pwd)/data:/data xtreme-view
1. $(id -u ${USER}): $(id -g ${USER})
$(id -u ${USER}):$(id -g ${USER})
$()就是把()中的计算值作为参数。
其中使用了linux id指令,具体参考https://www.runoob.com/linux/linux-comm-id.html
- -g或–group 显示用户所属群组的ID。
- -u或–user 显示用户ID。
2. $(pwd)/models:/models -v $(pwd)/data:/data xtreme-view
":"用来在 /etc/passwd 和 $PATH 变量中做分隔符,如:
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/sbin:/usr/sbin:/usr/games
3. 对windows
实际上,window无法在docker中使用GPU
以下来自 https://bbs.csdn.net/topics/394360047
Windows上不支持从Docker容器内进行GPU访问.
您需要nvidia-docker,但目前仅在Linux平台上支持.使用Hyper-v的GPU直通将需要离散设备分配(DDA),目前仅在Windows Server中,并且(at least in 2015)没有计划改变这种状态.因此,NVIDIA目前还没有将nvidia-docker移植到Windows.
这里有更多信息:https://devblogs.nvidia.com/nvidia-docker-gpu-server-application-deployment-made-easy/