玉溪做网站,网页美工设计之中使用的主要软件是,net网站开发的步骤txt,前端官网模板文章目录 推荐实验环境前言docker安装docker操作docker配置常见方法#xff08;安装包、联网、程序管理器#xff09;安装驱动的前提要求传统方法安装驱动程序程序管理器安装联网安装deb包安装 安装完成后的设置非传统方法安装-通过容器安装驱动的前提要求安装NVIDIA-Contain… 文章目录 推荐实验环境前言docker安装docker操作docker配置常见方法安装包、联网、程序管理器安装驱动的前提要求传统方法安装驱动程序程序管理器安装联网安装deb包安装 安装完成后的设置非传统方法安装-通过容器安装驱动的前提要求安装NVIDIA-Container-Toolkit应用程序的前提要求安装NVIDIA-Container-Toolkit应用程序 非传统方法-通过容器安装驱动反复报错之前反复重装时卸载步骤 最终结果 推荐
在linux系统中进行操作最重要的就是意识到用户权限这在通过不同方式安装不同应用中非常重要不然你就会导致一些用户无法使用。除了用户权限的问题还有就是程序的安装位置不同的安装位置的程序的启动方式是不同的安装在/usr/local/bin目录下的程序如果启动文件是在这个目录下在任意位置都可以直接启动如果启动文件是在子目录下需要链接一下才能在任意位置启动。在其他位置则需要连接一下才能在任意位置使用。如果一些应用是希望开机自启动的类似于下面的alist就需要编辑守护进程这样系统在启动的时候会自动调用守护进程。
建议在尝试Linux之前首先参考一下相关文献
UbuntuInstall Ubuntu desktopLinux 101软件安装与文件操作码农教程Linux操作系统查看系统信息
实验环境
参考
PHP中文网linux如何查看版本信息阿里云ubuntu查看硬件信息
查看系统信息的指令
cat /proc/version
uname -a
sudo lshw
gnome-shell --version项目内容系统Ubuntu 22.04(jammy)内存12GiB处理器Intel® Core™ i5-6300HQ CPU 2.30GHz × 4图形Intel® HD Graphics 530 GM107M [GeForce GTX 960M]GNOMEGNOME Shell 42.9操作系统类型64位磁盘128GB
前言
在进行科研工作时很多时候都需要对代码进行复现。复现很简单问题的难点在于环境的配置环境配置好了实验自然就能够复现环境配置错误往往会不停报错。因此为了省去配置环境的麻烦我们选择把环境连同系统一起打包即采用docker实现快速可迁移的代码复现。
docker安装
在电脑上安装Docker切记安装的是Docker engineDocker desktop-小孩子的玩具狗都不用里面功能有缺陷无法挂载GPU还要配合engine使用才行官网说desktop包含engine狗屁害我装了好几遍desktop配置安装Docker engine参见官网教程。 安装好以后docker帮助命令如下所示。
docker -h
Flag shorthand -h has been deprecated, please use --helpUsage: docker [OPTIONS] COMMANDA self-sufficient runtime for containersCommon Commands:run Create and run a new container from an imageexec Execute a command in a running containerps List containersbuild Build an image from a Dockerfilepull Download an image from a registrypush Upload an image to a registryimages List imageslogin Log in to a registrylogout Log out from a registrysearch Search Docker Hub for imagesversion Show the Docker version informationinfo Display system-wide informationManagement Commands:builder Manage buildsbuildx* Docker Buildx (Docker Inc., v0.11.0)compose* Docker Compose (Docker Inc., v2.19.1)container Manage containerscontext Manage contextsdev* Docker Dev Environments (Docker Inc., v0.1.0)extension* Manages Docker extensions (Docker Inc., v0.2.20)image Manage imagesinit* Creates Docker-related starter files for your project (Docker Inc., v0.1.0-beta.6)manifest Manage Docker image manifests and manifest listsnetwork Manage networksplugin Manage pluginssbom* View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)scan* Docker Scan (Docker Inc., v0.26.0)scout* Command line tool for Docker Scout (Docker Inc., 0.16.1)system Manage Dockertrust Manage trust on Docker imagesvolume Manage volumesSwarm Commands:swarm Manage SwarmCommands:attach Attach local standard input, output, and error streams to a running containercommit Create a new image from a containers changescp Copy files/folders between a container and the local filesystemcreate Create a new containerdiff Inspect changes to files or directories on a containers filesystemevents Get real time events from the serverexport Export a containers filesystem as a tar archivehistory Show the history of an imageimport Import the contents from a tarball to create a filesystem imageinspect Return low-level information on Docker objectskill Kill one or more running containersload Load an image from a tar archive or STDINlogs Fetch the logs of a containerpause Pause all processes within one or more containersport List port mappings or a specific mapping for the containerrename Rename a containerrestart Restart one or more containersrm Remove one or more containersrmi Remove one or more imagessave Save one or more images to a tar archive (streamed to STDOUT by default)start Start one or more stopped containersstats Display a live stream of container(s) resource usage statisticsstop Stop one or more running containerstag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGEtop Display the running processes of a containerunpause Unpause all processes within one or more containersupdate Update configuration of one or more containerswait Block until one or more containers stop, then print their exit codesGlobal Options:--config string Location of client config files (default/home/stu/.docker)-c, --context string Name of the context to use to connect to thedaemon (overrides DOCKER_HOST env var anddefault context set with docker context use)-D, --debug Enable debug mode-H, --host list Daemon socket to connect to-l, --log-level string Set the logging level (debug, info,warn, error, fatal) (default info)--tls Use TLS; implied by --tlsverify--tlscacert string Trust certs signed only by this CA (default/home/stu/.docker/ca.pem)--tlscert string Path to TLS certificate file (default/home/stu/.docker/cert.pem)--tlskey string Path to TLS key file (default/home/stu/.docker/key.pem)--tlsverify Use TLS and verify the remote-v, --version Print version information and quitRun docker COMMAND --help for more information on a command.For more help on how to use Docker, head to https://docs.docker.com/go/guides/
docker操作
参考
菜鸟教程Docker教程
#查看本地镜像
docker images 名字属性REPOSITORY表示镜像的仓库源TAG镜像的标签IMAGE ID镜像IDCREATED镜像创建时间SIZE镜像大小
#查看所有容器
docker ps -a名字属性CONTAINER ID:容器 ID。IMAGE使用的镜像。COMMAND启动容器时运行的命令。CREATED容器的创建时间。STATUS容器状态。PORTS容器的端口信息和使用的连接类型tcp\udp。NAMES自动分配的容器名称。
常见操作指令如下所示
#拉取镜像
docker pull
#运行镜像为容器
docker run -it ubuntu /bin/bash
#退出终端
exit
#启动容器
docker start 1e560fca3906
#进入容器
docker exec 1e560fca3906
#停止容器
docker stop 1e560fca3906
#重启容器
docker restart 1e560fca3906
#导出容器
docker export 1e560fca3906 ubuntu.tar
#导入容器
docker import ubuntu.tar test/ubuntu:v1
#删除容器
docker rm -f 1e560fca3906docker配置
1. 启动的容器要想正常使用还需要安装一些软件 比如要想让启动的容器可以通过ssh连接进行访问就需要在容器中安装ssh服务。当我们需要在云服务器中安装docker容器又想要在外部可以直接访问这个容器而不是先登录服务器然后再打开docker容器我们可以把docker容器的ssh端口映射到服务器的某个端口上这样我们可以通过ssh直接访问内部的docker容器。 参考
知乎OpenSSH安装与使用-Linux腾讯云开发者社区ubuntu系统启用root用户远程登陆SegmentFaultVsCode轻松使用docker容器-Remote Containers菜鸟教程容器互联
#在容器内安装ssh方便通过ssh访问容器
apt install ssh
----------------------------------------------------------------------------------------
#在容器内添加用户密码方便通过ssh登陆时访问
passwd root
123
----------------------------------------------------------------------------------------
#容器内设置端口映射将容器端口22映射到宿主机的某个端口
/etc/init.d/ssh start %启动ssh
/etc/init.d/ssh stop %关闭ssh
/etc/init.d/ssh restart %重启ssh
----------------------------------------------------------------------------------------
#容器内修改配置文件允许用户通过密码登陆root用户
/etc/ssh/sshd_config
PermitRootLogin yes
----------------------------------------------------------------------------------------
#其它主机通过ssh连接容器
ssh -p port userip
1232. 在实现远程登录以后要想用于深度学习人工智能开发还需要安装pytorch。 在实现容器能够通过ssh连接以后要想用于深度学习开发还需要配置好深度学习环境。 Prompt服务器深度学习环境配置 参考
CSDN深度学习服务器环境配置总结知乎给Linux服务器配置深度学习环境腾讯云cuda卸载与安装CSDN实现Linux服务器配置深度学习环境并跑代码完整步骤
上述最后一个参考还是有可取之处的虽然不是很正确。
深度学习服务器比较好的管理方式是采用分配账户的方式来提高服务器的利用率。其中cuda最好是通过全局的方式安装到机器上的也就是所有用户都可以访问nvidia驱动和cudnn是直接安装在全局上的这个没什么疑问。Anaconda和pytorch/tensorflow是需要每个用户自行安装的每个用户根据自己不同的需要安装不同的包。
#安装相应的pytorch版本
pip3 install torch torchvision torchaudio3. 安装pytorch之前还需要检查一下看能不能使用宿主机的显卡。不然的话就没办法进行深度学习人工智能训练。
Prompt怎么让容器能够访问宿主机的GPU显卡 参考
稀土掘金ubuntu如何查看硬件信息CSDNlinux(ubuntu)查看硬件设备命令
#查看硬件设备信息
sudo lshw
sudo lshw -C display
#如果找不到此命令就安装apt install lshw
%系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
%资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh 目录名 # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
%磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
%网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
%进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态
%用户
# w # 查看活动用户
# id 用户名 # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
%服务
# chkconfig --list # 列出所有系统服务
# chkconfig --list | grep on # 列出所有启动的系统服务
%程序
# rpm -qa # 查看所有安装的软件包经过检查发现这个容器无法识别宿主机的显卡所以也就没办法运行深度学习我们需要手动把GPU挂载上去才可以。 4. 怎么把宿主机的GPU显卡挂载到容器上 Promptubuntu服务器怎么挂载GPU到docker中 要想让容器能够使用GPU还需要安装container-toolkit但是问题在于toolkit安装在哪里安装在容器中还是宿主机中感觉应该是安装在宿主机中。 在官方指导中可以通过官网下载安装包安装也可以通过在线联网安装也可以通过系统自带的程序管理器也就是additional driver应用程序来安装还可以把驱动程序安装在容器中这样容器方便迁移驱动也就方便迁移。还真有人把驱动放进容器中这也太神奇了。
常见方法安装包、联网、程序管理器安装驱动的前提要求
在使用上述常见方法安装显卡驱动时有一些前提要求。前提要求是否满足可以参考以下官方链接进行检查
NVIDIAPre-installation Actions腾讯云linux查看内核版本_ubuntu查看内核版本号博客园ubuntu—查看、安装、切换内核CSDNubuntu16查看\下载\切换内核
主要检查的就是有没有显卡gcc是否安装以及内核版本和内核头部是否匹配。如果不匹配要安装相应的内核头部。因为有了匹配的内核头部安装应用程序的时候才能正常通过校验。验证指令如下所示
#查看GPU是否可以用nvidia的驱动及cuda
lspci | grep -i nvidia
#检查系统版本
uname -m cat /etc/*release
#检查gcc是否安装了
gcc --version
#查看内核版本
lsb_release -a
uname -a
hostnamectl
cat /proc/version
cat /etc/issue
lsb_release -a
#查看内核头文件的版本
dpkg --get-selections | grep linux 或者 dpkg --list |grep linux
#linux-image-版本号内核映像文件
#linux-headers-版本号内核头文件
#linux-image-extra-版本号内核扩展文件
#最后一步比较复杂就是要检查内核头文件版本和内核版本是否对应。如果不对应需要进行修改当内核版本跟内核头部文件不匹配时需要安装相应的内核版本。并修改配置文件使得按照要求的内核运行。
#安装内核版本
sudo apt install linux-image-版本号-generic
#查看配置文件中的内核启动顺序
grep menuentry /boot/grub/grub.cfg
#修改配置文件设置内核启动顺序
sudo gedit /etc/default/grub
#把GRUB_DEFAULT0修改为 GRUB_DEFAULT”UbuntuLinux 4.4.0-21-generic“ 这种类型的, 当然内核版本应该是你想要的.
#修改完成后更新使生效
sudo update-grub
#再修改配置文件
sudo gedit /boot/grub/grub.cfg
#大概在148行有个........把版本号改为你需要的版本号,修改好以后保存退出.
#然后重启电脑
#检验是否安装成功
uname -r当上述要求满足以后就可以按照常见方法中给定的安装步骤进行安装驱动程序。
传统方法安装驱动程序
下述方法进行之前最好检查以上前提要求是否满足 安装显卡driver的方法参考
NVIDIANVIDIA Driver Installation Quickstart Guidemyfreax如何在 Ubuntu 20.04 安装 Nvidia 驱动程序
程序管理器安装
首先是最简单的通过additional driver安装驱动。对于Ubuntu系统来说如果你的计算机有NVIDIA GPU那么系统会自动安装开源驱动程序 Nouveau 和 NVIDIA专有驱动程序你可以自己选择通过桌面上的附加驱动一块电路板图标来更改使用的驱动。 默认情况下Ubuntu 使用的 Nouveau 驱动程序通常比专有驱动程序慢得多并且不支持最新的硬件和软件技术。所以通过additional driver可以更改GPU使用的驱动程序。 这种方法安装的驱动程序跟通过命令行安装的具有同样效力。通过命令行安装驱动如下所示
#检查有什么驱动及对应的驱动程序
ubuntu-drivers devices
#安装想使用的版本的驱动
sudo apt install nvidia-driver-版本号
#当然这样安装的是ubuntu软件源默认提供的驱动程序如果想使用最新的驱动程序可以从NVIDIA官网上导入PPA来安装。
#重启使生效
sudo reboot
#检查安装情况
nvidia-smi联网安装
BASE_URLhttps://us.download.nvidia.com/tesla
DRIVER_VERSION450.80.02
curl -fSsl -O $BASE_URL/$DRIVER_VERSION/NVIDIA-Linux-x86_64-$DRIVER_VERSION.run
sudo sh NVIDIA-Linux-x86_64-$DRIVER_VERSION.rundeb包安装
sudo apt-get install linux-headers-$(uname -r)
distribution$(. /etc/os-release;echo $ID$VERSION_ID | sed -e s/\.//g)
wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-drivers
#下载好deb安装包后进行安装
sudo dpkg -i *.deb安装完成后的设置
安装完成后还有一些设置需要完成包括设置环境变量等参考
NVIDIAPost-installation Actions
不过在使用deb包安装nvidia驱动时deb包里面包含了配置环境变量的脚本所以会自动进行环境变量配置其他的安装方式我还不知道。
非传统方法安装-通过容器安装驱动的前提要求
在系统中安装容器版本的驱动程序参考
NVIDIANVIDIA Driver Containers
安装容器版本的驱动程序也有一定的要求包括禁用开源驱动程序GPU架构container toolkit的设置内核模块的开启等具体检查方法如下所示
#禁用Nouveau启用IPMI
Promptubuntu如何禁用Nouveau
## 禁用Nouveau
sudo tee /etc/modules-load.d/ipmi.conf ipmi_msghandler \sudo tee /etc/modprobe.d/blacklist-nouveau.conf blacklist nouveau \sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf options nouveau modeset0
----------------------------------------------------------------------------------------
#查看GPU架构Fermi(2.1)
## 安装查看GPU的工具
sudo apt install gpustat
##查看GPU的状态、温度、功率、显存使用情况
gpustat
----------------------------------------------------------------------------------------
#设置NVIDIA Container Toolkit for docker为root权限级别
##根据官方文档中的意思就是
##先安装好container toolkit然后修改里面的配置使得当启动容器时导入的GPU驱动指向的是驱动容器内的驱动。
##所以container toolkit程序的作用就是设置当启动容器并挂载GPU时对应的GPU驱动程序去哪里找通过修改container toolkit的配置文件可以修改驱动程序的位置进而让挂载GPU时有不同的位置设置。
##所以我用常见方法安装好驱动以后要想在容器中使用GPU也需要下载container toolkit来指定容器去哪里找驱动程序否则容器无法使用驱动程序。
##设置container toolkit应用程序的权限
sudo sed -i s/^#root/root/ /etc/nvidia-container-runtime/config.toml
----------------------------------------------------------------------------------------
#启用i2c_core内核模块
## 如果是aws核需要启用此模块其他的版本就不用了
sudo tee /etc/modules-load.d/ipmi.conf i2c_core
----------------------------------------------------------------------------------------
# 更新使得配置生效
sudo apt-get dist-upgrade
sudo update-initramfs -u
# 重启生效
sudo reboot即安装驱动容器之前要先安装好NVIDIA-Container-Toolkit安装NVIDIA-Container-Toolkit可以参考
NVIDIAInstallation Guide
安装NVIDIA-Container-Toolkit应用程序的前提要求
参考
NVIDIAInstallation Guide
安装这个应用程序也有前提要求包括要先安装NVIDIA驱动程序以及其他要求如下所示
#kernel version 3.10
uname -a
----------------------------------------------------------------------------------------
#Docker 19.03
docker -v
----------------------------------------------------------------------------------------
#GPU architecture Kepler
gpustat
----------------------------------------------------------------------------------------
#NVIDIA driver 418.81.07
nvidia-smi除了这些前提要求以外官网还提到了CDI但是介绍不是很详细可以参考 GithubCDI - The Container Device Interface 官网上的意思好像是说安装好这个NVIDIA-Container-Toolkit以后可以用于Container Device Interface (CDI) Support也可以用于DockerDocker的安装参考DockerDocker installDocker安装好以后我们可以在宿主机上安装NVIDIA-Container-Toolkit从而让docker的容器可以使用GPU。
安装NVIDIA-Container-Toolkit应用程序
参考
NVIDIAInstallation Guide简书在docker容器中使用tensorflow-gpuCSDNlinux中在docker container中使用宿主机的GPU资源
#设置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
#更新及安装
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
#配置container-toolkit的守护进程
sudo nvidia-ctk runtime configure --runtimedocker
##上述命令不太行我们修改一下
sudo dockerd --add-runtimenvidia/usr/bin/nvidia-container-runtime [...]
##或者
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/override.conf EOF
[Service]
ExecStart
ExecStart/usr/bin/dockerd --hostfd:// --add-runtimenvidia/usr/bin/nvidia-container-runtime
EOF
sudo systemctl daemon-reload \ sudo systemctl restart docker
#重启docker
sudo systemctl restart docker
Failed to restart docker.service: Unit docker.service is masked.
#通过运行基本的CUDA容器来验证工作设置
sudo docker run --rm --runtimenvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi#要想使用vscode连接容器需要安装三个插件
Docker #Makes it easy to create, manage, and debug containe
Remote - ssh #Open any folder on a remote machine using SSH and
Dev containers #Open any folder or repository inside a Docker contai
##这样在启动容器以后就可以通过右键容器选择“attach visual studio code”来连接容器
----------------------------------------------------------------------------------------
#通过vscode连接远程服务器并将上述三个拓展也安装到服务器上
##如果访问不了docker就是用户权限问题
sudo gpasswd -a 当前登陆用户名 docker
### 例如 sudo gpasswd -a xuxiaocong docker
### 从用户组中删除 sudo gpasswd -d 当前登陆用户名 docker
##链接上以后再添加三个拓展然后再重启就可以使用docker了
sudo reboot
----------------------------------------------------------------------------------------
#当配置好上述设置以后每次登陆还需要输入密码为了省略上述操作我们可以生成ssh-key然后把公钥上传到远程服务器的
##/home/hph/.ssh/authorized_keys中
----------------------------------------------------------------------------------------
#怎么把宿主机的GPU显卡挂载到容器中
#要想把宿主机的GPU挂载到容器中需要在宿主机中安装一个NVIDIA-Container-toolkit组件
distribution$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
#安装好以后将GPU挂载到容器中的命令就是
sudo docker run -e NVIDIA_VISIBLE_DEVICESall nvidia/cuda:10.0-base nvidia-smi命令执行过程中如下图所示 参考
CSDNdocker: Error response from daemon: Unknown runtime specified nvidia.
上面反复错误就是因为我用的是Docker desktop导致缺少docker.service文件连systemctl都找不到docker.service在哪里更开不了守护进程daemon。
如果还有问题可以参考
简书在docker容器中使用tensorflow-gpuCSDNubuntu20.04下安装Docker和NVIDIA Container Toolkit教程稀土掘金安装NVIDIA Container Toolkit
非传统方法-通过容器安装驱动
在满足上面提到的要求以后我们可以启动一个驱动容器也就是专门用来运行驱动程序的容器
#启动此驱动容器
sudo docker run --name nvidia-driver -d --privileged --pidhost \
-v /run/nvidia:/run/nvidia:shared \
-v /var/log:/var/log \
--restartunless-stopped \
nvidia/driver:450.80.02-ubuntu18.04
----------------------------------------------------------------------------------------
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done#在驱动容器启动完成后我们就可以在深度学习容器中挂载GPU了
sudo docker run --gpus all nvidia/cuda:11.0-base nvidia-smi
sudo docker run --gpus all nvidia/cuda:11.8.0-devel-ubuntu22.04 nvidia-smi
sudo apt autoremove
#systemctl --user enable docker-desktop
#service文件位置
#/etc/systemd/system/multi-user.target.wants/docker.service在驱动容器启动以后我们可以运行能够挂载GPU的容器了。
反复报错
Docker desktop安装以后Docker相关命令正常运行但是就是没有Service服务和Daemon守护进程。 参考
stackoverflowdocker-desktop does not launch on ubuntu [Failed to start docker-desktop.service: Unit docker-desktop.service is masked]
之前反复重装时卸载步骤
卸载客户端
sudo apt remove docker-desktop删除配置文件
rm -r $HOME/.docker/desktop
sudo rm /usr/local/bin/com.docker.cli
sudo apt purge docker-desktop删除无用的软链接 最终结果
# 查看系统内版本
#uname -a不行
cat /etc/issue
# 拉取python镜像
docker pull python:3.11sha256:7d57b1fef9b7fda8bf331b971a3ca96c3214313666fafdf26d33f1d0e6399222
# 运行python容器
docker run -it --runtimenvidia --gpus all --name python3-test python:3.11sha256:7d57b1fef9b7fda8bf331b971a3ca96c3214313666fafdf26d33f1d0e6399222
# 拉取ubuntu镜像
docker pull ubuntu:jammy-20230624sha256:b060fffe8e1561c9c3e6dea6db487b900100fc26830b9ea2ec966c151ab4c020
# 运行ubuntu容器
docker run -it --runtimenvidia --gpus all --name ubuntu-test ubuntu:jammy-20230624sha256:b060fffe8e1561c9c3e6dea6db487b900100fc26830b9ea2ec966c151ab4c020
#拉取Pytorch镜像
docker pull bitnami/pytorch:2.0.1
# 启动pytorch容器
docker run -it --runtimenvidia --gpus all --name pytorch-test bitnami/pytorch:2.0.1
# 拉取18.0镜像
docker pull ubuntu:bionic-20230530sha256:dca176c9663a7ba4c1f0e710986f5a25e672842963d95b960191e2d9f7185ebe
# 拉取正版pytorch镜像
docker pull pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel
# 运行正版pytorch镜像
docker run -itd --gpus all --name myenv pytorch/pytorch:2.0.1-cuda11.7-cudnn8-develDocker官方收了多少广告费搜索Pytorch竟然第一个不是Pytorch社区开发的Pytorch镜像包而是bitnami下面的。要是能用我就不说什么了关键还不好用。按下载量排名也轮不上bitnami啊。 真正的pytorch镜像应该是 参考
CSDNdocker容器部署pytorch模型gpu加速部署运行CSDN史上最详细解决“搭建GPU版Pytorch Docker镜像”教程Docker hub镜像
狗官方要是搜索直接显示社区版本的我也就不用走这么多弯路了真狗