本篇将介绍nvidia-docker2的安装,以及通过pycharm这个ide来调用docker中镜像的环境,可以让你在外部使用docker中环境。(pycharm需要是专业版,可以百度下安装方法,主要是激活pycharm需要找一阵可用的)
安装的nvidia-docker2属于gpu版本,因而需要nvidia的显卡及驱动,在镜像中使用深度学习环境需要调用本机的cuda,所以使用前需要安装好显卡驱动及相应版本的cuda。
主要参考连接:
此连接为关于docker安装的文档,可以参考该连接安装docker-ce
此连接是关于nvidia-docker2的安装
下面将详细介绍关于他们的安装(上面的中文翻译+一些重要操作)
使用存储库安装,首次安装Docker CE,需要设置Docker存储库。之后,才可以从存储库安装和更新Docker。
1.设置存储库
更新apt包所有
sudo apt-get update
使apt通过HTTPS使用存储库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
设置稳定存储库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
2.安装DOCKER-CE
更新apt包
sudo apt-get update
安装最新版本的Docker CE和containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
安装特定版本的Docker CE,列出仓库中可用的版本
apt-cache madison docker-ce
安装指定版本:5:18.09.1~3-0 ~ubuntu-xenial
sudo apt-get install docker-ce= docker-ce-cli= containerd.io
运行hello-world 镜像验证是否正确安装了Docker CE
sudo docker run hello-world
此命令将下载测试映像并在容器中运行它,当容器运行时,它会打印一条信息性消息并退出。
这一步使运行docker更方便,以及后面联合使用pycharm时必须要这一步。
创建docker组
sudo groupadd docker
将您的用户添加到该docker组,即将user换成你用户
sudo usermod -aG docker $USER
注销并重新登录
验证是否还需要sudo,运行下面代码,会出现和之前一样的结果,不会在提示permission denied
docker run hello-world
如果上面代码出现下面的错误提示
WARNING: Error loading config file: /home/user/.docker/config.json
-stat /home/user/.docker/config.json: permission denied
解决这个问题,使用下面命令更改其所有权和权限
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
启用
sudo systemctl enable docker
禁用
sudo systemctl disable docker
安装nvidia-docker2软件包并重新加载Docker守护程序配置
sudo apt-get install nvidia-docker2
sudo pkill -SIGHUP dockerd
这里验证nvidia-docker是否安装完成,可运行下面的命令,出现显卡信息,表示安装完成(由于下载比较缓慢,可以先按这里配置阿里云加速器,一步一步很详细)
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
将nvidia-docker运行时用docker替换,方便运行:
sudo gedit .bashrc
在这个文件中添加alias docker=nvidia-docker就可以了。
打开pycharm:File/settings->project:…->project interpreter->复选框中选择show all->点击+出现下图
点击docker在选择server->new->unix socket即可
其image name中就会出现你docker中的镜像,选择相应的镜像则可使用相应的环境。
整个过程比较简单,可能会出现其他问题,可以给我发消息,之前也趟过很多坑,大部分问题都能解决。