Pycharm需要专业版。
远程服务器:安装docker(ssh默认已经配置好)
本地笔记本:安装专业版pycharm
我使用的远程服务器系统是ubuntu18.04。
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
上述命令执行完后,就可以做好所有准备工作
sudo systemctl enable docker
sudo systemctl start 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
服务器是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
sudo vim /lib/systemd/system/docker.service
echo 'export DOCKER_HOST=tcp://0.0.0.0:2375' >> /etc/profile
source /etc/profile
systemctl daemon-reload && systemctl restart docker
至此服务器端已经准备完毕。
具体参考pycharm 配置远程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数据存储目录