如题,直接上步骤,起初是因为做实验的时候版本冲突只能在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 multiversedeb 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博客