我们要复现的项目一般都用pytorch
或者tensorflow
框架,可以直接基于现有的pytorch
或者tensorflow
的Docker镜像,然后再在里面安装其他的包。
下载地址:
根据项目中的环境要求,选择相应的版本,然后pull下来,比如:
docker pull tensorflow/tensorflow:latest
如果提示:权限不够
尝试一:进入到docker组下面newgrp docker
尝试二:查看是否在docker组下面,id <你的用户名>
;如果不在docker组下面,联系我
注:以后运行docker报这个错都这么解决
我们要在现有的镜像基础上再配置我们需要的python环境。
启动容器
docker run --rm -it --runtime=nvidia <上面pull下来的镜像名称:镜像的tag> /bin/bash
参数说明:
--rm : 关闭终端就会将容器关闭,不用再手动清理了
-it : 终端
--runtime=nvidia:此选项允许我们使用宿主机中的GPU和Nvidia Driver
可选项:
-v <宿主机上的路径>:<docker中要存放的路径> :可以将宿主机中的数据共享到docker的特定路径下,无论哪边修改数据都会同步
安装python包
可以在第一步中启动的容器中安装python的各种包了(和在正常ubuntu系统一样)
保存我们的新镜像
所有环境安装完以后,重新打开一个终端(刚才哪个终端不要关闭,关闭刚才配的环境就都没了)
具体步骤:
打开pycharm, 选择File→Setting
在左侧菜单栏选择Project:xxx
,然后选择它下面的Python Interpreter
点击右侧Python Interpreter
选项最右边的按钮,选择Add
选择左侧菜单栏的Docker
选项,
然后点击右侧的New
按钮(我这里已经加过了)
配置一些信息,如图就行
点击OK以后就会进行连接,连接成功后就可以选择你要使用的镜像和里面的python环境了。
配置使用GPU
上述步骤结束以后,运行时发现会报错,如下
找不到Nvidia Driver,这时我们需要修改docker的守护进程:/etc/docker/daemon.json
向上述文件中添加一句:"default-runtime": "nvidia"
修改后内容如下:
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
重启docker
守护进程重启 sudo systemctl daemon-reload
重启docker服务 systemctl restart docker