[Docker]基于nvidia/cuda镜像构造机器学习环境

如题,直接上步骤,起初是因为做实验的时候版本冲突只能在cuda镜像上装,所以记录一下。参考了很多文章,但是分散在不同文章里,做个综合。

第一步:拉取nvidia/cuda镜像,创建容器

1. 找到对应版本拉取,网址:https://hub.docker.com/r/nvidia/cuda

docker pull nvidia/cuda:12.2.0-devel-ubuntu20.04

有三种版本,看了网上的说明,大概如下,按需下载即可:

- base:基于CUDA,包含最精简的依赖,用于部署预编译的CUDA应用,需要手工安装所需的其他依赖

- runtime:基于base,添加了CUDA toolkit共享的库

- devel:基于runtime,添加了编译工具链,调试工具,头文件,静态库。用于从源码编译CUDA应用。

2. 创建容器, 如需端口映射等,更详细docker命令见docker 常用命令大全_docker常用命令_保护我方胖虎的博客-CSDN博客

docker run -it -d --gpus "device=0" --name name -v /path/to/your/workspace:/workspace nvidia/cuda:xxx /bin/bash

自行验证是否可以运行nvidia-smi,验证容器内的CUDA环境正常。如果报错可能是docker缺个补丁,这个百度一下既有。

第二步:一系列换源操作

1. 更换apt源,可以读一下这篇

新建 sources.list,写入

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted deb http://mirrors.aliyun.com/ubuntu/ bionic universe deb http://mirrors.aliyun.com/ubuntu/ bionic-updates universe deb http://mirrors.aliyun.com/ubuntu/ bionic multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted deb http://mirrors.aliyun.com/ubuntu/ bionic-security universe deb http://mirrors.aliyun.com/ubuntu/ bionic-security multiverse

清华源(最近感觉这个好用一些)

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

执行

cp sources.list /etc/apt/sources.list
apt update

换完可以按需求下载一些基本工具,包括wget,vim这些

2. 安装miniconda并换源,miniconda版本请自行选择

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh
bash Miniconda3-py39_4.9.2-Linux-x86_64.sh -b -p $HOME/miniconda
$HOME/miniconda/bin/conda init bash
source ~/.bashrc

新建一个.condarc

vim ~/.condarc

写入阿里源,其他源也可以,自行百度

channels:
  - defaults
show_channel_urls: true
default_channels:
  - http://mirrors.aliyun.com/anaconda/pkgs/main
  - http://mirrors.aliyun.com/anaconda/pkgs/r
  - http://mirrors.aliyun.com/anaconda/pkgs/msys2
custom_channels:
  conda-forge: http://mirrors.aliyun.com/anaconda/cloud
  msys2: http://mirrors.aliyun.com/anaconda/cloud
  bioconda: http://mirrors.aliyun.com/anaconda/cloud
  menpo: http://mirrors.aliyun.com/anaconda/cloud
  pytorch: http://mirrors.aliyun.com/anaconda/cloud
  simpleitk: http://mirrors.aliyun.com/anaconda/cloud

 3. python换源

按需求创建新的conda环境

conda create -n env_name python=3.9

进入环境

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

个人感觉这个官方的文档写的很清楚了,就不赘述了

pypi | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

第三步:下载pytorch

这一步,主要为了一些版本问题,我一般直接在官网按需求查,平台,cuda版本都给你列好了,按需求下载就行 Previous PyTorch Versions | PyTorch

 如果你要用opencv-python

可能会报错缺少LibGL之类的,按如下方法安装依赖:

apt-get update
apt-get install -y libgl1-mesa-dev
apt-get install -y libglib2.0-dev

如果是redhat系统

yum install mesa-libGL.x86_64

第四步:打包修改后的镜像并上传至docker-hub

打包一个新的镜像,运行完下面的命令可以 docker image ls看一下有没有新的

docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag

上传需要注册账号什么的,比较麻烦就不写了,指路 

参考文章:

https://www.cnblogs.com/journeyonmyway/p/11234732.html

docker 常用命令大全_docker常用命令_保护我方胖虎的博客-CSDN博客

conda更换清华源,阿里源(最新版)_conda换阿里源_快去写论文的博客-CSDN博客

pypi | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值