站点图标 AI技术聚合

docker搭建深度学习环境&pycharm配置docker远程调试

docker搭建深度学习环境&pycharm配置docker远程调试

前言

Pycharm需要专业版。
远程服务器:安装docker(ssh默认已经配置好)
本地笔记本:安装专业版pycharm

1.远程服务器配置

1.docker安装

我使用的远程服务器系统是ubuntu18.04。

安装指定版本docker

sudo apt install curl
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial edge" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update && sudo apt-get install -y docker-ce=18.03.1~ce-0~ubuntu

上面的命令执行后,所有的准备工作就可以完成了

启动docker

sudo systemctl enable docker
sudo systemctl start docker

建立docker用户组

# 建立docker组
sudo groupadd docker
# 将当前用户加入docker组
sudo usermod -aG docker $USER

下面可以在终端输入docker info看是否可以使用docker,出现以下信息说明没问题。

配置图像加速

执行sudo vim /etc/docker/daemon.json,如果系统中不存在该文件,可以新建一个文件。添加以下代码

{
 	"runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }, 
    "registry-mirrors": [
        "https://registry.docker-cn.com"
    ]
}

然后重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

2.docker配置深度学习环境,以pytorch为例

服务器是3090,因此找到对应版本的pytorch镜像,运行docker pull去拉取pytorch镜像,由于我们要使用gpu版本的pytorch,所以pull的是含有cuda和cudnn的,此外需要安装devel版,不安则不能查看到gpu信息,并且不能对cuda进行编译,

镜子拉

# 拉取镜像
docker pull pytorch/pytorch:1.9.0-cuda11.1-cudnn8-devel
# 运行镜像, 会创建一个名为pytorch的容器
docker run -it --name pytorch pytorch/pytorch:1.9.0-cuda11.1-cudnn8-devel /bin/bash
# 进入容器后,由于Pytorch镜像已包含有pip,可以看看当前容器安装了什么包
pip list    

做你自己的镜子

具体可参考10分钟学会Docker的安装和使用!
如果我们需要安装额外的包,则可以直接pip进行下载,然后exit退出当前容器,并把此容器打包成镜像就可以使用了。下面是保存容器以及镜像的操作:
1.首先查看容器,我们在run镜像的时候就会生成对应的容器。
输入docker ps -a查看正在运行和历史运行的容器

因为我们前面起名的容器叫pytorch,可以看到第三行的容器就是我们想要的,容器id是6796c176b44c ,前面我们在这个容器里安装了额外的包,那么我们把它打包为镜像:
包格式为docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[tag]

# 提交容器为镜像
docker commit -m="提交说明" -a="作者" 6796c176b44c pytorch:1.9.0
# 此时可删除容器, 以及之前的那个镜像,避免保存镜像时空间不足
docker images #    查看刚保存的镜像 image_id
# 输出如下,成果制作好自己的镜像
REPOSITORY     TAG             IMAGE ID            CREATED             SIZE
pytorch        1.9.0           00deee90e8f8        15 hours ago        17.2GB

二、本地pycharm配置远程docker

1.服务器端配置

修改服务器docker的配置文件

sudo vim /lib/systemd/system/docker.service

输入更改如下

将管理地址写入 /etc/profile

echo 'export DOCKER_HOST=tcp://0.0.0.0:2375' >> /etc/profile
source /etc/profile

重启docker服务

systemctl daemon-reload && systemctl restart docker

至此,服务端就准备好了。

2.本地pycharm配置

具体参考pycharm 配置远程docker解释器,这里做了一些补充

增加docker解释器

file->setting


然后查看你远程服务器ip:ifconfig,eno1的ip就是

选择要使用的镜像


点OK确定即可。

编写测试脚本

在当前已经配置了解释器的项目下新建一个验证脚本hello_word.py
print(“hello world!”)

配置服务器和文件映射关系

(1)配置远程服务
tools->deployment->configuration


然后测试是否可以连接

出现这个说明OK
(2)配置本地文件与服务器文件间的映射关系。

上传本地脚本

配置完成后,可以上传本地文件到映射服务器路径

配置脚本运行环境


先设置下path mappings


再设置下docker container settings


至此所有配置完毕,下面就可以在本地运行远程docker容器里的python解释器了。

其他参考:
当Docker遇见Deep Learning
使用Docker搭建实验室共享GPU服务器
Docker-修改docker数据存储目录

文章出处登录后可见!

已经登录?立即刷新
退出移动版