【paddlecls】多机多卡-linux(一:环境搭建)

news2024/11/20 6:26:27

1. 安装docker(引擎):

(https://docs.docker.com/engine/install/ubuntu/)
Install Docker Engine on Ubuntu

To get started with Docker Engine on Ubuntu, make sure you meet the prerequisites, and then follow the installation steps.
Prerequisites
OS requirements

To install Docker Engine, you need the 64-bit version of one of these Ubuntu versions:

Ubuntu Lunar 23.04
Ubuntu Kinetic 22.10
Ubuntu Jammy 22.04 (LTS)
Ubuntu Focal 20.04 (LTS)
Ubuntu Bionic 18.04 (LTS)

Docker Engine is compatible with x86_64 (or amd64), armhf, arm64, and s390x architectures.
Uninstall old versions

Before you can install Docker Engine, you must first make sure that any conflicting packages are uninstalled.

Distro maintainers provide an unofficial distributions of Docker packages in APT. You must uninstall these packages before you can install the official version of Docker Engine.

The unofficial packages to uninstall are:

docker.io
docker-compose
docker-doc
podman-docker

Moreover, Docker Engine depends on containerd and runc. Docker Engine bundles these dependencies as one bundle: containerd.io. If you have installed the containerd or runc previously, uninstall them to avoid conflicts with the versions bundled with Docker Engine.

Run the following command to uninstall all conflicting packages:

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

apt-get might report that you have none of these packages installed.

Images, containers, volumes, and networks stored in /var/lib/docker/ aren’t automatically removed when you uninstall Docker. If you want to start with a clean installation, and prefer to clean up any existing data, read the uninstall Docker Engine section.
Installation methods

You can install Docker Engine in different ways, depending on your needs:

Docker Engine comes bundled with Docker Desktop for Linux. This is the easiest and quickest way to get started.

Set up and install Docker Engine from Docker’s apt repository.

Install it manually and manage upgrades manually.

Use a convenience scripts. Only recommended for testing and development environments.

Install using the apt repository

Before you install Docker Engine for the first time on a new host machine, you need to set up the Docker repository. Afterward, you can install and update Docker from the repository.
Set up the repository

Update the apt package index and install packages to allow apt to use a repository over HTTPS:

sudo apt-get update

sudo apt-get install ca-certificates curl gnupg

Add Docker’s official GPG key:

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

Use the following command to set up the repository:

 echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    Note

    If you use an Ubuntu derivative distro, such as Linux Mint, you may need to use UBUNTU_CODENAME instead of VERSION_CODENAME.

Install Docker Engine

Update the apt package index:

sudo apt-get update

Install Docker Engine, containerd, and Docker Compose.

Latest
Specific version

To install the latest version, run:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verify that the Docker Engine installation is successful by running the hello-world image.

sudo docker run hello-world

This command downloads a test image and runs it in a container. When the container runs, it prints a confirmation message and exits.

查看docker版本

docker version

输出以下内容:

Client: Docker Engine - Community
 Version:           20.10.9
 API version:       1.41
 Go version:        go1.16.8
 Git commit:        c2ea9bc
 Built:             Mon Oct  4 16:08:29 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.9
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.8
  Git commit:       79ea9d3
  Built:            Mon Oct  4 16:06:37 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.11
  GitCommit:        5b46e404f6b9f661a205e28d59c982d3634148f8
 runc:
  Version:          1.0.2
  GitCommit:        v1.0.2-0-g52b36a2
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

2.安装Nvidia Docker

curl https://get.docker.com | sh
sudo systemctl start docker
sudo systemctl enable docker

设置稳定存储库和GPG密钥:

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

在更新包列表后安装nvidia-docker2包(和依赖项)

sudo apt-get update
sudo apt-get install -y nvidia-docker2

设置默认运行时间后,重新启动Docker守护程序完成安装:

sudo systemctl restart docker

3.重要!!!(必须)

docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令

sudo groupadd docker     #添加docker用户组 默认情况下好像已经被创建了
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
docker ps    #测试docker命令是否可以使用sudo正常使用

4.拉取 PaddlePaddle 镜像(根据paddle官网提供的命令)

nvidia-docker pull paddlepaddle/paddle:2.4.2-gpu-cuda11.7-cudnn8.4-trt8.4
输出如下:

2.4.2-gpu-cuda11.7-cudnn8.4-trt8.4: Pulling from paddlepaddle/paddle
40dd5be53814: Pulling fs layer 
69761e853747: Pulling fs layer 
fc447ee06ac9: Pulling fs layer 
e1cfed2c8b10: Waiting 
35a8d68b06ce: Waiting 
7f2a3dc7d39e: Waiting 
c9834390d290: Waiting 
d73edacf489a: Waiting 
c7971ce47315: Pulling fs layer 
2da8291b2566: Pulling fs layer 
aa9433893559: Waiting 
fa914a76149f: Waiting 
a443c08ceb94: Waiting 
2f9f5dd4c70b: Pull complete 
37406ea94abb: Pull complete 
5aff29297311: Pull complete 
4d7ae3fb3473: Pull complete 
1d41e39f7395: Pull complete 
cc048442b162: Pull complete 
bb4f413d8b59: Pull complete 
98ebfdbbea64: Pull complete 
52ea893ab1d4: Pull complete 
02aefb1947a7: Pull complete 
6fd17bb6f094: Pull complete 
2c4562ce23fd: Pull complete 
c6e1729af58d: Pull complete 
50e9bbaccda2: Pull complete 
2ea7b26cbb13: Pull complete 
3b7745091648: Pull complete 
fd62cd917be7: Pull complete 
5be733668b3f: Pull complete 
71b603065b2a: Pull complete 
db72094d1c13: Pull complete 
18d85b154f03: Pull complete 
49d3f45b5952: Pull complete 
a421ef67ed02: Pull complete 
84a204ec15dd: Pull complete 
f8712675e95b: Pull complete 
4d6221659c44: Pull complete 
3d896a810942: Pull complete 
0a7898386676: Pull complete 
599deae959f2: Pull complete 
761c1aec740d: Pull complete 
6705817a2b30: Pull complete 
9560fe759bba: Pull complete 
2917473e87a2: Pull complete 
2d48f565abbc: Pull complete 
0865327c0f8a: Pull complete 
d22ed4f9eaa3: Pull complete 
ec44ef4c6197: Pull complete 
Digest: sha256:ad251d0bd9ba4258f70e964d7745cc2c50dbba2c0106feaed06d3b4bd64be4de
Status: Downloaded newer image for paddlepaddle/paddle:2.4.2-gpu-cuda11.7-cudnn8.4-trt8.4
docker.io/paddlepaddle/paddle:2.4.2-gpu-cuda11.7-cudnn8.4-trt8.4

5. 构建并进入 docker 容器(根据paddle官网提供的命令)

nvidia-docker run --name paddle_docker -it -v $PWD:/paddle registry.baidubce.com/paddlepaddle/paddle:2.4.2-gpu-cuda11.7-cudnn8.4-trt8.4 /bin/bash

    --name paddle_docker:设定 Docker 的名称,paddle_docker 是自己设置的名称;

    -it:参数说明容器已和本机交互式运行;

    -v $PWD:/paddle:指定将当前路径(PWD 变量会展开为当前路径的绝对路径)挂载到容器内部的 /paddle 目录;

    registry.baidubce.com/paddlepaddle/paddle:2.4.2-gpu-cuda11.7-cudnn8.4-trt8.4,指定需要使用的 image 名称。可以通过sudo docker images命令查看镜像。
    
    /bin/bash 是在 Docker 中要执行的命令

在这里插入图片描述

输出如下:
在这里插入图片描述

(base) uvtec@uvtec-MS-7B98:~$ sudo nvidia-docker run --name paddle_docker -it -v $PWD:/paddle registry.baidubce.com/paddlepaddle/paddle:2.4.2-gpu-cuda11.7-cudnn8.4-trt8.4 /bin/bash

λ e04f655ec148 /home 
【说明:现在进入了容器的命令行提示符(/bin/bash)。在这个容器中,我们可以执行各种命令和操作。现在您可以在容器中执行您需要的操作。根据您的需求,可以进行以下操作之一:

(1)进行所需的软件安装:
		您可以使用适当的包管理器(如apt、pip等)在容器中安装所需的软件或库。
(2)执行您的任务或命令:
		根据您的目的,您可以在容器中运行您的特定命令或任务。例如,训练深度学习模型、运行测试脚本等。
请注意,在容器中的操作和更改不会直接影响到主机系统。容器是一个隔离的环境,具有自己的文件系统和资源。
如果您希望退出容器并返回到主机系统的命令行提示符,可以使用exit命令。】

6. Docker 删除容器步骤

sudo docker ps -a(查看现在运行的docker 容器)

结果如下图:
如图在这里插入图片描述

sudo docker stop 容器的ID(停止该容器镜像)

例如:
在这里插入图片描述

sudo docker rm 容器的ID(删除容器)

例如:
此时查看,就发现没有啦!

docker常用命令

启动(已经停止的)容器

docker start 《容器id or 容器名称》

创建并运行新的容器

docker run (选项)《镜像名称》

查看所有镜像

sudo docker images
docker run :创建一个新的容器并运行一个命令

sudo docker ps -s
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
eb8a48550d97 registry.baidubce.com/paddlepaddle/paddle:2.4.2-gpu-cuda11.7-cudnn8.4-trt8.4 “/bin/bash” 24 minutes ago Up 24 minutes 0.0.0.0:2222->22/tcp, :::2222->22/tcp paddle_docker 359MB (virtual 17.7GB)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/603450.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql:SQL性能分析

1 SQL执行频率 MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次: -- session 是查看当前会话 ; -- global 是查询全局…

03散点密度图(遥感反演数据精度验证)

本文是在模仿中精进数据分析与可视化系列的第三期——散点密度图,本文所用的数据和代码可在公众号GeodataAnalysis回复20230602下载。 一、简介 散点密度图(Scatter Density Plot)是一种用于可视化二维数据分布的图表。它将散点图和核密度估…

linux【网络编程】之HTTPS协议,一文了解HTTPS是保证通信安全的

linux【网络编程】之HTTPS协议 一、什么是HTTPS协议二、加密和解密2.1 什么是加密解密2.2 为什么需要加密2.3 常见的加密方式2.3.1 对称加密2.3.2 非对称加密2.3.3 数据摘要(数据指纹)2.3.4 数字签名 2.4 理智选择加密解密方式2.4.1 只使用对称加密✖️2…

OpenMMLab-AI实战营第二期——2.人体关键点检测与MMPose

文章目录 1. 人体姿态估计的介绍和应用2-1. 2D姿态估计概述2.1 任务描述2.2 基于回归2.3 基于热力图2.3.1 从数据标注生成热力图(高斯函数)2.3.2 使用热力图训练模型2.3.3 从热力图还原关键点 2.4 自顶向下2.5 自底向上2.6 单阶段方法 2-2. 2D姿态估计详…

搞什么飞机?快速排序算法都没搞懂,还敢说自己值20k?

引言 之前面试过一位求职者,其期望薪资是20k,面试时问到了排序算法,结果就是模棱两可,说这说那的… 所以,还是有必要学一些基础算法的 首先,搞明白学算法的重要性和为什么学算法 算法我认为是一种解决问题…

Midjourney摄影真人风,超高清图片一篇足够

欢迎小伙伴光临,本博主打的就是一个真实,关注点赞不迷路,毫无保留奉献,欢迎大家来探讨,以上图片均是万能咒语篇出品。 有些小伙伴感觉我的咒语水分很大,出不来效果,如果出不来效果的&#xff0c…

windows sql server 如何卸载干净?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 windows sql server 怎么卸载干净? 前言一、windows sql server是什么?二、如何卸载干净 1、关闭sql server服务2、到控制面板,卸载sql …

深入Mybatis框架:解读数据源的实现,整合MyBatis框架,事务管理,集成JUnit测试

深入Mybatis框架 文章目录 深入Mybatis框架了解数据源解读Mybatis数据源实现非池化的数据源实现池化的数据源实现 整合Mybatis框架使用HikariCP连接池Mybatis事务管理使用Spring事务管理 集成JUnit测试 前面已经了解了JavaBean的创建和注入到IoC容器中,接下来深入My…

Nginx服务优化

配置nginx隐藏版本号 隐藏nginx版本号,避免安全漏洞泄漏 方法一:修改配置文件法 [rootwww conf]# vim /usr/local/nginx/confnginx.conf17 http { 18 include mime.types; 19 default_type application/octet-stream; 20 21 serve…

Generative AI 新世界 | 大型语言模型(LLMs)概述

在上一篇《Generative AI 新世界:文本生成领域论文解读》中,我带领大家一起梳理了文本生成领域(Text Generation)的主要几篇论文:InstructGPT,RLHF,PPO,GPT-3,以及 GPT-4…

jQuery的引入/jQuery筛选/菜单下拉案例/对类操作/封装的动画/自定义动画/获取元素属性

jQuery的使用与引入 点击链接后进入页面 复制整个页面,随后后新建文件,把复制的粘进去 jQuery入口函数 样式处理/隐式迭代 小案例 排他思想 淘宝服饰 链式编程 操作css方法 封装的动画 淡入淡出 自定义动画 获取元素固有属性值

添加程序到右键菜单打开项目文件夹

以Pycharm为例 第一部分: 添加程序到右键菜单。这里实验程序为pycharm,路径是形如D://pycharm/pycharm.exe。实际路径不是,这里是为了简便。 1、打开注册表,找到如下:HKEY_CLASSES_ROOT\Directory\Background\shell …

JVM学习(十四):垃圾收集器(万字介绍CMS、G1)

目录 一、垃圾收集器们 二、CMS(Concurrent-Mark-Sweep):低延迟 2.1 什么是CMS 2.2 CMS工作流程 2.3 详细描述 2.4 CMS的优缺点 2.4.1 优点 2.4.2 弊端 2.5 CMS常用参数 三、G1(Garbage First)收集器:区域化分代…

【2023最新】C站最全的Python实战项目合集(附源码),练完即可就业,从入门到进阶,基础到框架,你想要的全都有

不管是从编程语言排行榜来说,还是流行程度来说,Python目前都算得上是最好的编程语言之一。由于入门简单对初学者友好,而被广泛使用。 部分中小学已将Python编入教材,浙江高考加入Python,计算机二级也加入Python&#…

Redis数据结构简介

对redis来说,所有的key(键)都是字符串。 1.String 字符串类型 是redis中最基本的数据类型,一个key对应一个value。 String类型是二进制安全的,意思是 redis 的 string 可以包含任何数据。如数字,字符串&am…

【数据库从0到1】-入门基础篇

【数据库从0到1】-入门基础篇 🔻一、数据库产生背景🔻二、数据库有关概述🔻三、数据库访问接口🔻四、数据库种类🔻五、数据库有关术语🔻六、常见DBMS排名🔻七、常见数据库介绍7.1 RDS(关系型数据…

前端gulp的安装和使用,你或许用得到

gulp安装 1.npm install --global gulp-cli全局安装(只需要执行成功一次,之后就不需要再全局安装了) 2.npx mkdirp my-project创建项目并进入 3.cd my-project进入目录 4.npm init在项目目录下创建 package.json 文件 5.npm install --sav…

分享24个强大的HTML属性,建议每位前端工程师都应该掌握!

HTML属性非常多,除了一些基础属性外,还有许多有用的特别强大的属性 本文将介绍24个强大的HTML属性,可以使您的网站更具有动态性和交互性,让用户感到更加舒适和愉悦。 让我们一起来探索这24个强大的HTML属性吧! 1、Ac…

tqdm.notebook显示进度条

需要安装hbox插件 如图是无法正常显示进度条插件的 要在Jupyter Notebook中使用HBox(即水平盒子)布局插件,您需要执行以下步骤: 确认您已经安装了Jupyter Notebook和ipywidgets。如果没有安装,您可以使用如下命令进行…

【蓝桥杯单片机第八届国赛真题】

【蓝桥杯单片机第八届国赛真题】 文章目录 【蓝桥杯单片机第八届国赛真题】前言一、真题二、源码 前言 有幸进入国赛,为自己大学最后一个比赛画上完满的句号^^ 下面为蓝桥杯单片机第八届国赛程序部分,功能差不多都实现了,可能存在小bug&#…