一、Docker安装
官网提供了三种安装方法,
- 设置 Docker 的存储库并从中进行安装,以便于安装和升级任务。这是推荐的方法,但是这是默认安装最新版本docker
- 下载 DEB 包并手动安装,完全手动管理升级。可以指定版本安装docker
- 使用自动方便脚本来安装 Docker。
本博客主要介绍第二种方法,即可以指定版本的安装方法,安装Docker20.10版本
1、下载Docker deb包,下载路径:
https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/
首先从上链接中下载docker-ce-cli_20.10.9_3-0_ubuntu-bionic_amd64.deb, docker-ce_20.10.9_3-0_ubuntu-bionic_amd64.deb, containerd.io_1.6.6-1_amd64.deb三个指定的包,然后运行下面的命令进行安装并测试:
2、dpkg命令安装
sudo dpkg -i docker-ce-cli_20.10.9_3-0_ubuntu-bionic_amd64.deb docker-ce_20.10.9_3-0_ubuntu-bionic_amd64.deb containerd.io_1.6.6-1_amd64.deb
测试:
执行命令
su # 进入root权限
docker run hello-world
二、配置pytorch环境
上docker Hub官网 点击官方链接搜索 pytorch/pytorch
不用登录,直接在搜索栏进行搜索即可。
选择合适的版本,点击右边复制按钮,复制Docker pull命令,这里我选择了
docker pull pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel
等待完成后,使用命令:docker images
查看当前镜像:
发现刚才安装的pytorch镜像已经存在了。
三、运行pytorch容器
执行命令:docker run -it --gpus all pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel /bin/bash
这里注意,如果使用GPU的话,–gpus all必须要带,如果不适用的话可以不用此参数
首次运行可能会报错,没报错的话忽略:
报错和GUP有关,查了资料说在通过 --gpus 参数来使用宿主机的 GPU 时,需要先安装一个英伟达的nvidia-container-runtime。另外需要注意的是,这个东西是不能直接 apt install,会报找不到该软件,需要先添加英伟达的 apt 软件源。具体操作步骤如下:
可以新建一个nvidia-container-runtime-script.sh可执行文件,文件内容为
# nvidia-container-runtime-script.sh
sudo curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
sudo curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update
然后执行可执行文件:sudo sh nvidia-container-runtime-script.sh
然后执行:
sudo apt-get install nvidia-container-runtime
安装完毕后重启docker : sudo systemctl restart docker
最后重新运行容器:
发现GPU相关问题解决了。
四、在本地Docker环境下运行本地的python文件
执行命令:
docker run -it -v /home/zhanghua/DockerTest:/home --gpus all pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel /bin/bash
这里注意,运行容器时和“三”中的运行命令相比加了“-v /home/zhanghua/DockerTest:/home”参数,参数意义是:将本地目录“/home/zhanghua/DockerTest”挂载到docker 容器的“/home文件夹”,当然这里挂载目录和目标挂载目录都可以随便,就看你的python文件在哪里了,比如我的python文件在本地的"/home/zhanghua/DockerTest"目录中
代码运行成功。
注:我的DockerTest.py
import torch
print("------------------")
print("Docker 环境测试")
print()
print("cuda是否可用")
print(torch.cuda.is_available())
本博客只是初学小白记录,如有问题大家可以评论区讨论。
修改Docker的默认存储位置:
https://blog.csdn.net/qq_41251963/article/details/123065678