linux 如 Debia 或CentOS 下 Docker 安装

参考Docker Community Edition 镜像使用帮助

自动安装

Docker 提供了一个自动配置与安装的脚本,支持 Debian、RHEL、SUSE 系列及衍生系统的安装。

以下内容假定

  • 您为 root 用户,或有 sudo 权限,或知道 root 密码;
  • 您系统上有 curl 或 wget
export DOWNLOAD_URL="https://mirrors.bfsu.edu.cn/docker-ce"
# 如您使用 curl
curl -fsSL https://get.docker.com/ | sh
# 如您使用 wget
wget -O- https://get.docker.com/ | sh

这里抄下ubuntu的安装方法

以下内容根据 官方文档 修改而来。

如果你过去安装过 docker,先删掉:

# 如果你过去安装过 docker,先删掉:
sudo apt-get remove docker docker-engine docker.io containerd runc# 首先安装依赖:sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common# 根据你的发行版,下面的内容有所不同。你使用的发行版:ubuntu
# 信任 Docker 的 GPG 公钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg# 添加软件仓库:echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.bfsu.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 最后安装sudo apt-get update
sudo apt-get install docker-ce

Docker 组添加用户,设置允许普通用户操作 docker

1、 首先创建docker用户组,如果docker用户组存在可以忽略

sudo groupadd docker 

2、把用户添加进docker组中

sudo gpasswd -a ${USER} docker 

3、重启docker

sudo service docker restart 

4、如果普通用户执行docker命令,如果提示get …… dial unix /var/run/docker.sock权限不够,则修改/var/run/docker.sock权限 使用root用户执行如下命令,即可

sudo chmod a+rw /var/run/docker.sock

windows 下安装英伟达驱动  WSL下安装cuda等

英伟达驱动 官网

WSL下建议安装最新的驱动 可以WSL 调用GPU驱动 (建议:最新版即可)

nvidia-smi #查看显卡信息 测试是否正确安装显卡

英伟达 cuda仓库  cuda不必和nvidia-smi显示的版本一致,但是建议要接近

这里是官网 cuda 11.8

# Download Installer for Linux WSL-Ubuntu 2.0 x86_64
# 这里是 run 文件的 安装代码
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run# 这里是 deb文件安装代码wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

安装完成后

这里还不可以使用nvcc -V

以下为设置环境变量

# nvcc -V 的设置sudo vim .bashrc# 在 .bashrc 最后添加以下内容
export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#此处 11.8 和你安装的cuda版本一致# 按下 ESC 后 输入 :wq 确认source .bashrc
#确认更新# 输入nvcc -V查看cuda
nvcc -V

测试 检查是否可以直接调用GPU

$ sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
Thu Nov 24 07:26:40 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.56.05    Driver Version: 522.25       CUDA Version: 11.8     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:01:00.0 Off |                  N/A |
| 48%   28C    P8     7W / 170W |     32MiB / 12288MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A        23      G   /Xwayland                       N/A      |
|    0   N/A  N/A        34      G   /Xwayland                       N/A      |
|    0   N/A  N/A        34      G   /Xwayland                       N/A      |
+-----------------------------------------------------------------------------+

--gpus all 这里是调用GPU 必须的代码

补充内容

/etc/docker/daemon.json 参数详解

{"authorization-plugins": [],"data-root": "", #Docker运行时使用的根路径,根路径下的内容稍后介绍,默认/var/lib/docker"dns": [],  #设定容器DNS的地址,在容器的 /etc/resolv.conf文件中可查看"dns-opts": [],#容器 /etc/resolv.conf 文件,其他设置"dns-search": [],#设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的 主机时,DNS不仅搜索host,还会搜索host.example.com。注意:如果不设置,Docker 会默认用主机上的 /etc/resolv.conf来配置容器。"exec-opts": [],"exec-root": "","experimental": false,"features": {},"storage-driver": "","storage-opts": [],"labels": [],#docker主机的标签,很实用的功能,例如定义:–label nodeName=host-121"live-restore": true,"log-driver": "","log-opts": {},"mtu": 0,"pidfile": "",#Docker守护进程的PID文件"cluster-store": "","cluster-store-opts": {},"cluster-advertise": "","max-concurrent-downloads": 3,"max-concurrent-uploads": 5,"default-shm-size": "64M","shutdown-timeout": 15,"debug": true, #启用debug的模式,启用后,可以看到很多的启动信息。默认false"hosts": [],#设置容器hosts"log-level": "","tls": true,  #默认 false, 启动TLS认证开关"tlscacert": "", #默认 ~/.docker/ca.pem,通过CA认证过的的certificate文件路径"tlscert": "", #默认 ~/.docker/cert.pem ,TLS的certificate文件路径"tlskey": "",#默认~/.docker/key.pem,TLS的key文件路径"tlsverify": true,#默认false,使用TLS并做后台进程与客户端通讯的验证"tls": true,"tlsverify": true,"tlscacert": "","tlscert": "","tlskey": "","swarm-default-advertise-addr": "","api-cors-header": "","selinux-enabled": false, #默认 false,启用selinux支持"userns-remap": "","group": "",#Unix套接字的属组,仅指/var/run/docker.sock"cgroup-parent": "","default-ulimits": {"nofile": {"Name": "nofile","Hard": 64000,"Soft": 64000}},"init": false,"init-path": "/usr/libexec/docker-init","ipv6": false,"iptables": false,"ip-forward": false,#默认true, 启用 net.ipv4.ip_forward ,进入容器后使用sysctl -a|grepnet.ipv4.ip_forward查看"ip-masq": false,"userland-proxy": false,"userland-proxy-path": "/usr/libexec/docker-proxy","ip": "0.0.0.0","bridge": "","bip": "","fixed-cidr": "","fixed-cidr-v6": "","default-gateway": "","default-gateway-v6": "","icc": false,"raw-logs": false,"allow-nondistributable-artifacts": [],"registry-mirrors": [],#镜像加速的地址,增加后在 docker info中可查看。"seccomp-profile": "","insecure-registries": [],#配置docker的私库地址"no-new-privileges": false,"default-runtime": "runc","oom-score-adjust": -500,"node-generic-resources": ["NVIDIA-GPU=UUID1", "NVIDIA-GPU=UUID2"],"runtimes": {"cc-runtime": {"path": "/usr/bin/cc-runtime"},"custom": {"path": "/usr/local/bin/my-runc-replacement","runtimeArgs": ["--debug"]}},"default-address-pools":[{"base":"172.80.0.0/16","size":24},{"base":"172.90.0.0/16","size":24}]
}

设置国内镜像源代理

在 /etc/docker/daemon.json 文件 添加以下内容

 "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/","http://hub-mirror.c.163.com"]

安装nvidia-docker

# Setup the package repository and the GPG key
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# Install the nvidia-docker2 package (and dependencies) after updating the package listing
$ sudo apt-get update
$ sudo apt-get install -y  nvidia-docker2
# Restart the Docker daemon to complete the installation after setting the default runtime
$ sudo systemctl restart docker
# test
$ sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

报错及解决
1、gpg: 找不到有效的 OpenPGP数据
可能原因:不能访问 https://nvidia.github.io/libnvidia-container/gpgkey
解决:打开此网址,会自动下载 gpgkey 文件,之后 cd 到下载路径下运行

sudo apt-key add gpgkey

成功后会输出 OK

2、E: 无法定位软件包 nvidia-docker2
原因:

curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

在这条命令中读取 https://nvidia.github.io/libnvidia-container/ubuntu20.04/libnvidia-container.list 这个网址内的信息并写到 /etc/apt/sources.list.d/nvidia-docker.list 文件中。查看本地相应文件,发现该文件为空,说明在写入文件时出现了问题,可能与文件权限有关,从而影响了下载源的更新。

解决:访问上述地址,复制网址中的文本,通过 sudo vim 写入到本地的相应文件。

注意:
1、$distribution 需要替换为相应系统版本号,如上面链接中的 ubuntu20.04。
2、对于 1.6.0 之前的 NVIDIA Container Toolkit 版本,应使用 nvidia-docker 存储库而不是上面的 libnvidia-container 存储库。

之后按照官方的方法安装和测试。

# Install the nvidia-docker2 package (and dependencies) after updating the package listing
$ sudo apt-get update
$ sudo apt-get install -y  nvidia-docker2
# Restart the Docker daemon to complete the installation after setting the default runtime
$ sudo systemctl restart docker
# test
$ sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi# 最后一行有 --gpus all 才能正确调用 GPU驱动

Docker 配置 nvidia-docker 和 pytorch 的一些想法相关推荐

  1. 【快速安装Docker服务及Docker配置、Docker常用命令。】

    一.安装docker服务 命令行输入curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun即可快速安装 如提示curl: ...

  2. docker挂载NVIDIA显卡运行pytorch

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 写在前面: 请参考之前的文章安装好CentOS.NVIDIA相关驱动及软件.docker及加速 ...

  3. docker挂载NVIDIA显卡

    from:docker挂载NVIDIA显卡运行pytorch 写在前面: 请参考之前的文章安装好CentOS.NVIDIA相关驱动及软件.docker及加速镜像. 主机运行环境 $ uname -a ...

  4. docker anaconda_深度学习炼丹炉配置[1] Docker+sshfs环境配置

    感谢 @田文善 同学供稿 目录 一.需求二.方案(一)docker 配置1.dockerfile 制作2.构建 docker 镜像3.运行 docker 容器4.使用 docker 容器5.环境复用( ...

  5. docker配置daemon

    系列文章目录 CentOS8安装docker docker配置daemon docker部署kettel 目标: docker配置daemon 前言 linux版本:CentOs8 docker版本: ...

  6. 利用 Docker 配置 Pytorch 镜像流程

    目录 假设你已经安装好了Ubuntu 1 安装 Docker 2 安装 Pytorch 镜像 假设你已经安装好了Ubuntu 1 安装 Docker 打开终端,先更新下apt sudo apt-get ...

  7. docker 配置使用宿主机的GPU(ubuntu16.04+cuda10.0+cudnn7)

    1. 安装 Docker 卸载旧版本 Docker sudo apt-get remove docker docker-engine docker.io containerd runc 安装新版本 s ...

  8. nvidia docker容器不支持中文的解决办法_用docker搭建深度学习实验环境

    tensorflow和pytorch官方都维护了不同版本的docker镜像.借助docker我们可以方便的搭建起深度学习实验环境. 但是想要在同一个容器内同时拥有tensorflow.pytorch. ...

  9. 如何使用docker配置深度学习开发环境

    文章目录 1.底层驱动的安装 1.1 操作系统的安装 1.2 显卡驱动的安装 1.3 cuda的安装 2.使用docker配置深度学习开发环境 2.1 docker的安装 2.2 nvidia_doc ...

最新文章

  1. 使用WindowsLive Writer2012和officeWord2013发布到博客园全面总结
  2. 【IM】关于稀疏学习和鲁棒学习的理解
  3. 常用的消息摘要算法小总结
  4. 【程序的流程】—— 顺序 / 分支 / 循环
  5. oozie JAVA Client 编程提交作业
  6. linux免密码登录失败,ssh 免密码登录失败
  7. 软件开发过程模型——喷泉模型
  8. Python Re正则表达式之group(0)、group(1)
  9. 2021年安徽省大数据与人工智能应用竞赛大数据-本科组赛题
  10. 【百战GAN】StyleGAN原理详解与人脸图像生成代码实战
  11. matlab输入数据作方程,用MATLAB函数编写并求解微分方程
  12. 简述网桥的特点_网桥的工作原理和特点是什么?
  13. UE4,UE5虚幻引擎源码版下载
  14. jq 移动端网页分享功能_js实现QQ、微信、新浪微博分享功能
  15. [工具集]介绍一波我常用的小工具
  16. MTI动目标指示和MTD动目标检测
  17. 如何把一组计算机做成云,怎样才能把旧电脑变成云电脑呢?
  18. 智力风暴(经典智力题)
  19. 一起来看流星雨-------张翰
  20. IOC和DI浅显易懂的理解

热门文章

  1. 逆序字符串 和 字符串的逆序输出 的区别~
  2. FX110网:鳄鱼线(Alligator)指标的操作应用
  3. 2019年了桌面CPU还吊打笔记本CPU?真相了
  4. 手机二维码软件及资源大汇总
  5. 令克软件再推OpenAPI与MAS系统服务,强大引擎赋能券商多元化发展
  6. WINDOWS下多个桌面切换
  7. 浙大 | PTA 习题5-6 使用函数输出水仙花数 (20分)
  8. cad拉伸命令怎么用_如何用AutoCAD搞定三维斜齿轮
  9. python 语义similarity_GitHub - samelltiger/word_similarity: 基于《知网》的语义相似度计算 python2.7 API...
  10. [MySQL 工具] pt-query-digest使用出错问题分析Can't locate Time/HiRes.pm in @INC