【paddlecls】多机多卡-linux

news2024/11/24 9:51:56

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 (选项)《镜像名称》

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

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

相关文章

助力工业物联网,工业大数据之工业大数据之油站维度设计【十四】

文章目录 01:油站维度设计02:油站维度构建 01:油站维度设计 目标:掌握油站维度的需求与设计 路径 step1:需求step2:设计 实施 需求:构建油站维度表,得到油站id、油站名称、油站所属…

北美机器人市场迎来销售放缓,未来路在何方?

原创 | 文 BFT机器人 引言 Introduction 北美机器人销售在2022年创下了历史记录,但在2023年第一季度放缓。据推进自动化协会(A3)提供的数据显示,2023年第一季度,北美公司仅订购了9,168台机器人,较2022年同…

C++进阶 —— map

目录 一,map介绍 类pair 函数模板make_pair 二,map使用 一,map介绍 map是关联容器,按照特定的次序存储元素(由键key和值value组合而成的);键key通常用于排序及唯一标识元素,而值…

不愧是华为出来的大佬,实在是太强了.....

前段时间公司缺人,也面了许多测试,一开始瞄准的就是中级水准,当然也没指望能来大牛,提供的薪资在15-20k这个范围,来面试的人有很多,但是平均水平真的让人很失望。看了简历很多上面都是写有4年工作经验&…

Pillow(PIL)入门教程(非常详细)以及python实现jpg,png、ico、bmp格式互转大全

概述 Pillow库的特点: python3安装pillow: ​Pillow是什么 Pillow创建Image对象: jpg,png: jpg与png格式互转代码: 概述 Pillow 库(有时也称 PIL 库) 是 Python 图像处理的基础库&#xf…

计划学习网络安全,需要学习哪些知识,应该怎么学习?

虽然现在的网络安全大都是指渗透测试,但是并不代表只有渗透测试这一个方向,除此之外还有二进制逆向这个方向。以下会对这两个方向分别对您进行详解。 渗透测试方向 1、学习编程语言 (1)网站如何搭建的?HTML、CSS、J…

SpingBoot+LayUI 实现酒店管理系统编写

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

晚上12点接到面试邀约电话,待业一个月的我却拒绝了....

前言 一位测试朋友最近一直在找工作,前两天刚拒绝了一个面试。那天晚上12点多,他接到一个HR的面试电话,让他第二天早上10点去公司面试。朋友和HR聊了两句,了解到这位HR经常加班,于是果断拒绝了这个面试。 我还为他可惜…

AHB-to-APB Bridge——06testbench、env、base_test、scb

框架: testbench: HCLK_PCLK_RATIO:随机定义hclk pclk比率;各个接口clk、rst连接;生成满足相应比率的pclk;与DUT的连接;将vif set到agt中去;agt在set到底层 关于rest_if&#xff…

如何保证三个线程按顺序执行?不会我教你

👨‍🎓作者:bug菌 ✏️博客:CSDN、掘金、infoQ、51CTO等 🎉简介:CSDN|阿里云|华为云|51CTO等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12…

仪表板展示 | DataEase看世界:数据呈现世界油价变化

背景介绍 最近几个月,全球能源市场一直处于动荡不安的状态,与石油相关的新闻也非常频繁。2023年2月10日,面对西方多轮限价举措,俄罗斯副总理亚历山大诺瓦克宣布,俄罗斯将在3月把每日原油产量下调50万桶。目前&#xf…

FOFA-攻防挑战

记录一下中途短暂的辉煌时刻 辉煌一刻谁都有,别拿一刻当永久 在昨天初尝战果之后,今天又习惯性的打开 https://vulfocus.cn/ 发现今天还有挑战赛,按捺不住躁动的心,又开始了学习。今天主要拿下的是这四个镜像,同时我也会对我了解…

前端SKU一站式解决方案 - Geek-SKU

因为业务需要且市场上的UI框架与插件市场内没有简易的用法并且不够全面萌生便了自己写一个SKU组件的想法,于是Geek-SKU便应运而生。 现在的SKU组件已支持vue、uniapp,支持带图SKU、主题色设置、自动选择低价SKU、自动展示价格区间等,让您更便…

浏览器自动填充但是数据为空的问题

问题背景 公司项目中登录页为了方便,需要允许浏览器自动填充账号密码。这个在很多项目都很常见,但是测试中出现了这样一个问题:视觉上已经自动填充账号密码, 但是当点击密码的小眼睛或者点击登录时,会清空掉填充的数据…

火爆全网,性能测试-全链路压测实战总结,从需求到实战...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 流程导图 梳理阶段…

SpringBoot+Vue 的家政服务管理平台+数据库(附源码)

文章目录 1. 背景2.主要技术3. 可行性分析4.系统设计5系统的详细设计与实现5.1前台模块设计5.2后台功能模块 源码下载地址 1. 背景 本系统主要是设计出家政服务管理平台,基于B/S构架,后台数据库采用了Mysql,可以使数据的查询和存储变得更加有…

Linux函数库管理

文章目录 Linux函数库管理动态与静态函数库静态函数库动态函数库 ldconfig与 /etc/ld.so.confldconfig使用案例 程序的动态函数库解析:lddldd使用案例 校验软件的正确性常见的校验软件有哪些?使用案例 Linux函数库管理 在 Linux 操作系统中,…

【算法竞赛进阶指南】141.周期 题解 KMP 最小循环节

题目描述 一个字符串的前缀是从第一个字符开始的连续若干个字符,例如 abaab 共有 5 5 5 个前缀,分别是 a,ab,aba,abaa,abaab。 我们希望知道一个 N N N 位字符串 S S S 的前缀是否具有循环节。 换言之…

7.Ansible Modules介绍

什么是Ansible Modules? Ansible模块根据其功能分为不同的组,每个模块提供了一些功能,可以直接使用。 模块官方文档: https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html 系统模块是要在系统级别执行的操作,例如修改系统上的用户…

Springboot +spring security,认证方式---Form表单认证的实现(三)

一.简介 这篇文章来学习下security的认证方式其中的Form表单认证 二.Spring Security的认证方式 2.1什么是认证 认证: 就是用来判断系统中是否存在某用户,并判断该用户的身份是否合法的过程,解决的其实是用户登录的问题。认证的存在,是为…