ubuntu创建pytorch-gpu的docker环境

合作推广,分享一个人工智能学习网站。计划系统性学习的同学可以了解下,点击助力博主脱贫( •̀ ω •́ )✧

使用docker的好处就是可以将你的环境和别人的分开,特别是共用的情况下。本文介绍了ubuntu环境下创建pytorch-gpu的教程,centos其实也是差不多的。

安装docker


首先是安装docker:

sudo apt-get update # 更新软件包
# 安装必要的依赖
sudo apt install apt-transport-https ca-certificates curl software-properties-common
sudo apt-get install docker
# 添加 Docker GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置 Docker 存储库
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装docker
sudo apt install docker-ce docker-ce-cli containerd.io
# 授权sudo
sudo usermod -aG docker $USER

使用以下代码检查安装成功与否:

dockcer --version

在这里插入图片描述

创建镜像


首先是新建一个目录,你找得到就可,名字叫什么都行:

mkdir /wzl
cd /wzl

然后是准备两个文件,一个镜像源,一个Dockerfile。

  1. 镜像源
    新建文件source.list:
sudo vim source.list

然后复制以下代码(华为源,使用其他国内源都可):

deb https://repo.huaweicloud.com/ubuntu/ focal main restricted
deb https://repo.huaweicloud.com/ubuntu/ focal-updates main restricted
deb https://repo.huaweicloud.com/ubuntu/ focal universe
deb https://repo.huaweicloud.com/ubuntu/ focal-updates universe
deb https://repo.huaweicloud.com/ubuntu/ focal-backports main restricted universe
deb https://repo.huaweicloud.com/ubuntu/ focal-security main restricted
deb https://repo.huaweicloud.com/ubuntu/ focal-security universe
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse 

vim先按Esc,然后输入:wq回车,保存退出,生怕你们linux不好(doge。

插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

  1. Dockerfile
    新建Dockerfile文件:
sudo vim Dockerfile

复制以下代码:

FROM pytorch/pytorch:1.11.0-cuda11.3-cudnn8-runtime

MAINTAINER yyq

ENV DEBIAN_FRONTEND=noninteractive
#更新pip,并且换源
RUN pip install pip -U # 升级pip到最新版本
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

#为了运行apt-get update
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak
COPY sources.list /etc/apt/sources.list
RUN chmod a+x /etc/apt/sources.list

#更新apt
RUN apt-get update
#安装依赖
RUN apt-get install gcc -y && apt-get install make -y \
		&& apt-get install vim -y && apt-get install openssl -y \
		&& apt-get install libssl-dev -y && apt-get install python3-pip -y

RUN apt-get install vim ffmpeg libsm6 libxext6 cron openssh-server -y
# 为防止安装依赖太长,需要换行,直接用两行 pip install, 不会出现下面一行的依赖没有安装
RUN pip install aio-pika==7.1.0 asyncio==3.4.3 APScheduler==3.7.0 matplotlib==3.3.4 opencv-python==4.5.2.52
RUN pip install pandas==1.5.3 pyyaml==6.0 tqdm==4.64.1 seaborn==0.12.2
RUN pip install Pillow==8.2.0 pika==1.2.0 pymongo==3.11.4 requests==2.25.1

RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai'>/etc/timezone

RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/'  /etc/ssh/sshd_config
RUN sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config
RUN echo "root:123456" | chpasswd

RUN echo  "alias ll='ls -l'" >> ~/.bash_profile
RUN /bin/bash -c 'source  ~/.bash_profile;'

CMD [""]

代码摘自https://blog.csdn.net/m0_46825740/article/details/123550130

检查以下目录下面是否完成了以上两个文件:
在这里插入图片描述
然后就是创建容器,-t 是镜像的名字(tag),可以自己修改:

docker build -t wzl .

等待片刻之后就可以看到创建好的镜像了。
在这里插入图片描述

创建容器


最重要的是使用nvidia的GPU环境,所以我们得配置运行环境,修改daemon.json文件:

sudo vim /etc/docker/daemon.json

复制以下内容:

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

然后刷新并重启docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

接下来就是根据镜像创建我们的容器了,–name指定容器的名字,–runtime指定运行环境,-itd表示使用交互式且挂起,py_11.3:latest是我们创建的镜像:

sudo docker run --name wzl --runtime=nvidia -itd py_11.3:latest /bin/bash

进入镜像后,输入nvidia-smi显示出GPU后我们就配置成功了:
在这里插入图片描述

在这里插入图片描述
测试:
activate base并查看conda版本
在这里插入图片描述

创建一个python文件,比如叫test.py:

import torch 
print(torch.__version__)
print(torch.cuda.is_available())

运行python test.py
在这里插入图片描述

至此,大功告成(。・∀・)ノ

原创不易,请勿转载本不富裕的访问量雪上加霜
博主首页:https://wzlodq.blog.csdn.net/
来都来了,不评论两句吗👀
如果文章对你有帮助,记得一键三连❤

相关推荐

  1. MAC创建Pytorch环境

    2024-01-08 08:34:01       25 阅读
  2. ubuntu x86环境创建armv8 ubuntu2004 64位docker服务器

    2024-01-08 08:34:01       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 08:34:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 08:34:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 08:34:01       82 阅读
  4. Python语言-面向对象

    2024-01-08 08:34:01       91 阅读

热门阅读

  1. Unity获取相机渲染范围内的所有物体

    2024-01-08 08:34:01       50 阅读
  2. 第一个Flask项目(pycharm社区版)

    2024-01-08 08:34:01       55 阅读
  3. 基于SpringBoot的旅游网站设计

    2024-01-08 08:34:01       60 阅读
  4. 多线程忙循环是什么

    2024-01-08 08:34:01       54 阅读
  5. 数据结构-怀化学院期末题

    2024-01-08 08:34:01       49 阅读
  6. springMVC获取请求参数的方式

    2024-01-08 08:34:01       63 阅读
  7. PyTorch的核心模块介绍

    2024-01-08 08:34:01       57 阅读
  8. C语言基本框架及其含义,C入门

    2024-01-08 08:34:01       58 阅读
  9. js 如何判断对象自身为空?

    2024-01-08 08:34:01       61 阅读
  10. 神经网络中参数与超参数的区别是什么?

    2024-01-08 08:34:01       53 阅读