本文主要介绍如何在windows系统安装docker。由于工作需要,尝试了docker 18.09的安装以及使用cuda10.0版本的镜像。在这个过程中踩了很多坑,本文是踩坑过程中总结出来的经验
Windows配置
打开控制面板——>程序——>程序和功能——>启用或关闭windows功能
勾选适用于linux的windows子系统,如果有Hyper-V也勾选(家庭版没有),没有不用管
下载安装docker desktop(docker toolbox)
对于Docker18.09以上的版本下载对应版本docker desktop即可
docker desktop傻瓜式安装。之后可以在cmd命令行用下面的命令查看docker版本,docker-destop 4.28.0对应的版本是docker 25.0.3
docker --version
对于Docker18.09及以下的版本则下载对应版本的Docker toolbox并安装。
Docker toolbox安装要注意勾选Install VirtualBox......,其他就没什么好说的了。
拉取docker镜像
在docker hub上搜索需要的镜像版本(需要科学上网),包括nvidia、pytorch的镜像,复制拉取命令。在cmd命令行编译器输入复制的命令,这里是:
docker pull pytorch/pytorch:1.2-cuda10.0-cudnn7-devel
等待拉取完成利用下面命令查看存在的容器和镜像,出现对应的镜像信息表示拉取成功,如果拉取失败就多尝试几次。
docker ps -a
创建并开启一个容器*
在这个步骤一定要清楚用docker的目的是什么。如果你需要在docker里面训练网络,需要调用GPU,一般对内存的要求也比较高(docker 默认64M!!!),最好在创建容器的时候就设置好,少点麻烦。使用下面的命令
docker run --rm --gpus all --shm-size 2g pytorch/pytorch:1.2-cuda10.0-cudnn7-devel nvidia-smi
其中--gpus all代表使用所有gpu,也可指定是某个gpu如--gpus 0。docker 18.09会找不到gpus这个参数,可以使用NVIDIA_VISIBLE_DEVICES=all试试
--shm-size 2g代表使用2g的共享内存,也可以设置4g、8g......
如果已经开启了容器可以在windows中找到hostconfig.json文件,修改"ShmSize"的值并重启电脑或者重新创建容器。方法如下:
首先,使用下面的命令将容器打包成镜像,其中的[image_name:tag]表示生成的镜像名以及对应的tag
docker commit -p [container id] [image_name:tag]
然后重新执行docker run ...
如果需要打包镜像,使用下面的命令导出自己的镜像文件
docker save -o [导出文件名] [镜像名]:[镜像tag]
导入自己的镜像时使用下面命令,里面保存着之前创建的所有文件和环境。
docker load -i [镜像压缩包]
到此docker就安装完了,不过这个仅仅是开始,后续还需要根据自己的需求配置环境。