docker搭建pytorch环境

安装docker和nvidia-docker2

  • 参考之前的文章ubuntu安装docker及在docker中使用gpu
  • PS:
    对docker18.06版本,如果想要在docker容器内使用gpu,需要安装nvidia-docker。
    对于docker版本大于19,需要安装nvidia-container-runtime,在创建容器时配置参数即可使用gpu。

pull and run docker

创建本地挂载目录

mkdir pytorch1.4

下载docker镜像1.4-cuda10.1-cudnn7-devel

PS:devel版本镜像的才有nvcc等bin文件

docker pull pytorch/pytorch:1.4-cuda10.1-cudnn7-devel

查看本地已有的镜像

docker images

创建容器

-it表示交互式运行容器;
–name指定容器名;
–shm-size设置的是共享内存大小,根据需要设置,如果不设置的话,默认64M,训练深度学习模型的时候dataloader会报错提示共享内存不足;
-p是端口映射(主机端口:容器端口),-v是地址映射(主机文件夹:容器文件夹,注意必须用绝对路径);
镜像的RESPOSITORY:TAG;
进入容器后启动bash

docker19以下版本

sudo nvidia-docker run -it --name pytorch1.4 --shm-size="15g" -p 8080:22 -v /home/ecust/txx/docker/container/pytorch1.4:/workspace   pytorch/pytorch:1.4-cuda10.1-cudnn7-devel /bin/bash

docker19以上版本

docker run -it --gpus all --name pytorch1.4 --shm-size="15g" -p 8080:22 -v /home/ecust/txx/docker/container/pytorch1.4:/workspace   pytorch/pytorch:1.4-cuda10.1-cudnn7-devel /bin/bash

查看已经创建的容器

docker ps -a

查看运行中的容器

docker ps

启动容器

docker start "container id or name"

进入容器

 docker attach "container id or name"

退出容器

exit

停止容器

docker stop "container id or name"

删除容器

docker rm "container id or name"

docker中安装anaconda

(PS:上述1.4-cuda10.1-cudnn7-devel镜像自带conda,无需进行下面的安装步骤)

install wget

若apt install fail参见docker下使用apt install报错

apt install wget

download anaconda

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.1.0-Linux-x86_64.sh

install anaconda

bash Anaconda3-5.1.0-Linux-x86_64.sh

更换conda国内源

vi ~/.condarc

添加

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://conda.anaconda.org/pytorch/win-64
  - https://conda.anaconda.org/pytorch/noarch
  - https://repo.anaconda.com/pkgs/main/win-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/free/win-64
  - https://repo.anaconda.com/pkgs/free/noarch
  - https://repo.anaconda.com/pkgs/r/win-64
  - https://repo.anaconda.com/pkgs/r/noarch
  - https://repo.anaconda.com/pkgs/pro/win-64
  - https://repo.anaconda.com/pkgs/pro/noarch
  - https://repo.anaconda.com/pkgs/msys2/win-64
  - https://repo.anaconda.com/pkgs/msys2/noarch
show_channel_urls: true

激活anaconda环境

激活成功后在命令行的前面会出现:(base) [root@xxxx] #

 source activate

退出 anaconda 环境

 source deactivate

pycharm使用docker环境

安装专业版pycharm,参考ubuntu常用软件安装

社区版好像不支持访问docker环境

ssh远程连接

参考docker常用命令记录,利用pycharm使用ssh与容器进行连接,在容器内使用数据和代码进行训练。

报错及解决方案

报错1:docker安装pytorch0.4无法使用cuda

  • 报错:
    使用docker pull pytorch/pytorch:0.4-cuda9-cudnn7-devel命令拉了image之后,创建容器,发现torch.cuda.is_available()得到的结果是False。
    在这里插入图片描述
  • 解决办法:
    输入conda list,发现有两个版本的cuda,一个时cuda90,一个时cudatoolkit9.0
    在这里插入图片描述
    使用conda remove删除掉一个即可,经测试,删除cuda90的时候不会对pytorch进行删除,并且删除过后即可解决该问题;
    在这里插入图片描述

[1]:anibali/pytorch
[2]:docker安装gpu版本的pytorch
[3]:docker run 创建一个新的容器并运行一个命令
[4]:Docker的容器创建以及基本命令
[5]:Why can’t I run command “nvcc --version" in docker-CUDA Container? #1160
[6]:dockerhub
[7]:Docker环境下安装Anaconda的教程及注意事项
[8]:CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘ 问题解决
[9]:Docker commit使用
[10]:Pycharm使用docker容器内的环境开发
[11]:pycharm Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon run
[12]:ubuntu常用软件安装
[13]:docker常用命令记录


版权声明:本文为moutain9426原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。