Jetson 设备docker全局代理映射方法以及迁移到ssd硬盘

一、docker全局代理映射

 set -x
        #-e http_proxy=http://127.0.0.1:7890 -e https_proxy=http://127.0.0.1:7890 \注意代理下载加速
        $SUDO docker run --runtime nvidia -it --rm --network host -e http_proxy=http://127.0.0.1:7890 -e https_proxy=http://127.0.0.1:7890 \

nvidia@nvidia-desktop:~/jetson-containers (master)$ cat /etc/docker/daemon.json
{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": [],
             "proxies":{
             "default": {
             "httpProxy": "http://127.0.0.1:7890",
             "httpsProxy": "http://127.0.0.1:7890"
       }
       }
        }
    },
    "default-runtime": "nvidia"
}

二、提示 - SSD + Docker

一旦你通过在Jetson上刷新最新的Jetson Linux(L4T)BSP或用整个JetPack映像刷新SD卡来设置你的Jetson,在开始测试所有伟大的生成式AI应用程序之前,你要确保你有一个巨大的存储空间来容纳所有容器和你要下载的模型。jetson-containers

我们将展示如何在 Jetson 上安装 SSD,并为 Docker 进行设置。

固态硬盘

物理安装

  1. 从 Jetson 开发者套件中拔下电源和任何外围设备。
  2. 将 NVMe SSD 卡物理安装在 Jetson 开发者套件的载板上,确保正确安装连接器并用螺丝固定。
  3. 重新连接所有外围设备,然后重新连接电源以打开 Jetson 开发者套件。
  4. 系统启动后,验证您的 Jetson 是否在 PCI 总线上识别出新的内存控制器:

    lspci
    

    输出应如下所示:

    0007:01:00.0 Non-Volatile memory controller: Marvell Technology Group Ltd. Device 1322 (rev 02)
    

格式化和设置自动挂载

  1. 运行以查找设备名称。lsblk

    lsblk
    

    输出应如下所示:

    NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    loop0          7:0    0    16M  1 loop 
    mmcblk1      179:0    0  59.5G  0 disk 
    ├─mmcblk1p1  179:1    0    58G  0 part /
    ├─mmcblk1p2  179:2    0   128M  0 part 
    ├─mmcblk1p3  179:3    0   768K  0 part 
    ├─mmcblk1p4  179:4    0  31.6M  0 part 
    ├─mmcblk1p5  179:5    0   128M  0 part 
    ├─mmcblk1p6  179:6    0   768K  0 part 
    ├─mmcblk1p7  179:7    0  31.6M  0 part 
    ├─mmcblk1p8  179:8    0    80M  0 part 
    ├─mmcblk1p9  179:9    0   512K  0 part 
    ├─mmcblk1p10 179:10   0    64M  0 part 
    ├─mmcblk1p11 179:11   0    80M  0 part 
    ├─mmcblk1p12 179:12   0   512K  0 part 
    ├─mmcblk1p13 179:13   0    64M  0 part 
    └─mmcblk1p14 179:14   0 879.5M  0 part 
    zram0        251:0    0   1.8G  0 disk [SWAP]
    zram1        251:1    0   1.8G  0 disk [SWAP]
    zram2        251:2    0   1.8G  0 disk [SWAP]
    zram3        251:3    0   1.8G  0 disk [SWAP]
    nvme0n1      259:0    0 238.5G  0 disk 
    

    识别与您的 SSD 对应的设备。在本例中,它是 .nvme0n1

  2. 格式化 SSD,创建挂载点,并将其挂载到文件系统。

    sudo mkfs.ext4 /dev/nvme0n1
    

    您可以为挂载点目录选择任何名称。我们在这里使用,但在 ' setup.md 文档中,被使用。/ssdjetson-containers/mnt

    sudo mkdir /ssd
    
    sudo mount /dev/nvme0n1 /ssd
    
  3. 为了确保挂载在启动后仍然存在,请在文件中添加一个条目:fstab

    首先,确定 SSD 的 UUID:

    lsblk -f
    

    然后,向文件添加一个新条目:fstab

    sudo vi /etc/fstab
    

    插入以下行,将 UUID 替换为从中找到的值:lsblk -f

    UUID=************-****-****-****-******** /ssd/ ext4 defaults 0 2
    
  4. 最后,更改目录的所有权。/ssd

    sudo chown ${USER}:${USER} /ssd
    

码头工人

  1. 安装完整的 NVIDIA JetPack SDK,其中包括软件包。nvidia-container

    注意:如果您使用 NVIDIA 提供的 SD 卡映像来刷新 SD 卡,则所有必需的 JetPack 组件都已预安装,因此可以跳过此步骤。

    sudo apt update
    sudo apt install -y nvidia-jetpack
    
  2. 重新启动 Docker 服务并将用户添加到组中,这样您就不需要将命令与 一起使用。dockersudo

    sudo systemctl restart docker
    sudo usermod -aG docker $USER
    newgrp docker
    
  3. 添加默认运行时/etc/docker/daemon.json

    sudo vi /etc/docker/daemon.json
    

    插入该行,如下所示:"default-runtime": "nvidia"

    {"runtimes": {"nvidia": {"path": "nvidia-container-runtime","runtimeArgs": []}},"default-runtime": "nvidia"
    }
    
  4. 重启 Docker

    sudo systemctl daemon-reload && sudo systemctl restart docker
    

将 Docker 目录迁移到 SSD

现在,SSD 已安装在您的设备上并可用,您可以使用额外的存储容量来保存对存储要求苛刻的 Docker 目录。

  1. 停止 Docker 服务。

    sudo systemctl stop docker
    
  2. 移动现有 Docker 文件夹

    sudo du -csh /var/lib/docker/ && \sudo mkdir /ssd/docker && \sudo rsync -axPS /var/lib/docker/ /ssd/docker/ && \sudo du -csh  /ssd/docker/ 
    
  3. 编辑/etc/docker/daemon.json

    sudo vi /etc/docker/daemon.json
    

    插入如下行。"data-root"

    {"runtimes": {"nvidia": {"path": "nvidia-container-runtime","runtimeArgs": []}},"default-runtime": "nvidia","data-root": "/ssd/docker"
    }
    
  4. 重命名旧的 Docker 数据目录

    sudo mv /var/lib/docker /var/lib/docker.old
    
  5. 重新启动 docker 守护程序

    sudo systemctl daemon-reload && \sudo systemctl restart docker && \sudo journalctl -u docker
    

在 SSD 上测试 Docker

  1. [第1航站楼]首先,打开终端以在拉取 Docker 映像时监视磁盘使用情况。

    watch -n1 df 
    
  2. [第2航站楼]接下来,打开一个新终端并启动 Docker pull。

    docker pull nvcr.io/nvidia/l4t-base:r35.2.1
    
  3. [第1航站楼]请注意,随着容器映像的下载和提取,磁盘使用率会上升。/ssd

    ~$ docker image ls
    REPOSITORY                  TAG       IMAGE ID       CREATED        SIZE
    nvcr.io/nvidia/l4t-base     r35.2.1   dc07eb476a1d   7 months ago   713MB
    

最终验证

重新启动 Jetson,并验证是否遵守以下规定:

~$ sudo blkid | grep nvme
/dev/nvme0n1: UUID="9fc06de1-7cf3-43e2-928a-53a9c03fc5d8" TYPE="ext4"~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk1p1  116G   18G   94G  16% /
none            3.5G     0  3.5G   0% /dev
tmpfs           3.6G  108K  3.6G   1% /dev/shm
tmpfs           734M   35M  699M   5% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.6G     0  3.6G   0% /sys/fs/cgroup
tmpfs           734M   88K  734M   1% /run/user/1000
/dev/nvme0n1    458G  824M  434G   1% /ssd~$ docker info | grep RootDocker Root Dir: /ssd/docker~$ sudo ls -l /ssd/docker/
total 44
drwx--x--x  4 root root 4096 Mar 22 11:44 buildkit
drwx--x---  2 root root 4096 Mar 22 11:44 containers
drwx------  3 root root 4096 Mar 22 11:44 image
drwxr-x---  3 root root 4096 Mar 22 11:44 network
drwx--x--- 13 root root 4096 Mar 22 16:20 overlay2
drwx------  4 root root 4096 Mar 22 11:44 plugins
drwx------  2 root root 4096 Mar 22 16:19 runtimes
drwx------  2 root root 4096 Mar 22 11:44 swarm
drwx------  2 root root 4096 Mar 22 16:20 tmp
drwx------  2 root root 4096 Mar 22 11:44 trust
drwx-----x  2 root root 4096 Mar 22 16:19 volumes~$ sudo du -chs /ssd/docker/
752M    /ssd/docker/
752M    total~$ docker info | grep -e "Runtime" -e "Root"Runtimes: io.containerd.runtime.v1.linux nvidia runc io.containerd.runc.v2Default Runtime: nvidiaDocker Root Dir: /ssd/docker

您的 Jetson 现在已使用 SSD 进行设置!

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

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

相关文章

物联网AI MicroPython学习之语法uzlib解压缩

学物联网,来万物简单IoT物联网!! uzlib 介绍 uzlib 模块解压缩用DEFLATE算法压缩的二进制数据 (通常在zlib库和gzip存档器中使用),压缩功能尚未实现。 注意:解压缩前,应检查模块内可…

力扣字符串--总结篇

前言 字符串学了三天,七道题。初窥kmp,已经感受到算法的博大精深了。 内容 对字符串的操作可以归结为以下几类: 字符串的比较、连接操作(不同编程语言实现方式有所不同); 涉及子串的操作,比…

Unity Mirror学习(一) SyncVars特性使用

官网中所说的网络对象,指的是挂了 NetworkIdentity组件的对象 官网中所说的玩家对象,指的是NetworkManager脚本上的PlayerPrefab预制体 这个概念对阅读官网文档很重要,我刚开始并不理解,走了歪路 SyncVars(同步变量&a…

【C++笔记】优先级队列priority_queue的模拟实现

【C笔记】优先级队列priority_queue的模拟实现 一、优先级队列的介绍与使用方式1.1、优先级队列介绍1.2、优先级队列的常见使用 二、优先级队列的模拟实现1.0、仿函数的介绍1.1、构造函数1.2、优先级队列的插入push1.3、优先级队列的删除(删除堆顶元素)1.4、获取堆顶元素1.5、判…

Ubuntu(WSL2) 安装最新版本的 GCC

要在 Ubuntu 上安装最新版本的 GCC,可以通过以下步骤进行操作: 1. 打开终端(Terminal) 2. 更新软件包列表,确保系统使用最新的软件包信息,运行以下命令: sudo apt update 3. 安装 GCC 软件包…

自然语言处理(一):RNN

「循环神经网络」(Recurrent Neural Network,RNN)是一个非常经典的面向序列的模型,可以对自然语言句子或是其他时序信号进行建模。进一步讲,它只有一个物理RNN单元,但是这个RNN单元可以按照时间步骤进行展开…

20231111-读取当前文件夹中所有图片名称并写入TXT文本中

使用VBScript,存在问题(当图片名称中有中文时,保存的TXT文本为ANSI编码) Dim FileSystem, Folder, File, TextFile 创建文件系统对象 Set FileSystem CreateObject("Scripting.FileSystemObject") 获取当前目录路径 S…

classification_report分类报告的含义

classification_report分类报告 基础知识混淆矩阵(Confusion Matrix)TP、TN、FP、FN精度(Precision)准确率(Accuracy)召回率(Recall)F1分数(F1-score) classi…

管理员模式运行cmd或则bat文件的时候,出现路径错误的问题

最近在使用Comfyui, 不清楚啥原因,有时候Git无法访问,有时候文件夹无法访问的。就想把它的运行bat命令直接用 管理员模式运行,给到最高的权限,试试。但就这么简单的问题,搜了半天,都是一大堆不靠谱的教程&a…

大数据毕业设计选题推荐-污水处理大数据平台-Hadoop-Spark-Hive

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

java框架常见面试题(spring、springMVC、springboot、mybatis)

java框架常见面试题(spring、springMVC、springboot、mybatis) Spring:Spring 是一个轻量级的开源框架,它提供了Java开发人员可以用来构建企业级应用程序的一套全面的技术。Spring 提供了一个完整的模块化框架,包括 90 多个模块,…

selenium+python做web端自动化测试框架实战

最近受到万点暴击,由于公司业务出现问题,工作任务没那么繁重,有时间摸索seleniumpython自动化测试,结合网上查到的资料自己编写出适合web自动化测试的框架,由于本人也是刚刚开始学习python,这套自动化框架目…

数字马力笔试面试复盘

笔试——10月9日19:00 单选:30题 16.如何获取AJAX 请求的响应状态码? A通过AJAX对象的 statusCode 属性获取 B通过AJAX对象的responseText 属性获取C通过AJAX对象的status 属性获取 D通过AJAX对象的responseCode属性获取 答案:可以通过AJAX…

osg点云加载与渲染

目录 效果 laslib 关键代码 完整代码 效果 las点云读取使用了laslib这个库。 laslib 关键代码 {// 这里演示读取一个 .txt 点云文件const char* lasfile path.c_str();std::ifstream ifs;ifs.open(lasfile, std::ios::in | std::ios::binary);liblas::ReaderFactory f;libl…

Spring Cloud学习(三)【Nacos注册中心】

文章目录 认识 NacosNacos 安装使用 Nacos 完成服务注册Nacos 服务分级存储模型集群负载均衡策略 NacosRule根据权重负载均衡Nacos 环境隔离(命名空间)Nacos 和 Eureka 的区别 认识 Nacos Nacos 是阿里巴巴的产品,现在是 SpringCloud 中的一…

Azure - 机器学习:自动化机器学习中计算机视觉任务的超参数

Azure Machine Learning借助对计算机视觉任务的支持,可以控制模型算法和扫描超参数。 这些模型算法和超参数将作为参数空间传入以进行扫描。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济…

【C++入门】构造函数析构函数

目录 前言 1. 类的默认成员函数 2. 构造函数 2.1 什么是构造函数 2.2 构造函数的特性 3. 析构函数 3.1 什么是析构函数 3.2 析构函数的特性 前言 前边我们已经了解了类和对像的基本概念,今天我们将继续深入了解类。类有6个默认成员函数,即使类中什么都…

C#开发的OpenRA游戏之世界存在的属性CombatDebugOverlay(3)

C#开发的OpenRA游戏之世界存在的属性CombatDebugOverlay(3) 这次来分析CombatDebugOverlay属性,这个属性只有在调试游戏的时候才会使用。当你设置这个属性的时候,就可以看到如下图的结果: 可以看到物品的周边都有一个圆圈,以及有一些十字的点位标志。 那些十字表示的点…

设计模式 -- 策略模式(Strategy Pattern)

策略模式:一种行为型模式,这些设计模式特别关注对象之间的通信。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 介绍 意图:定义一系列的算…

Python实现局部二进制算法(LBP)

1.介绍 局部二进制算法是一种用于获取图像纹理的算法。这算法可以应用于人脸识别、纹理分类、工业检测、遥感图像分析、动态纹理识别等领域。 2.示例 """ 局部二进制算法,计算图像纹理特征 """ import cv2 import numpy as np imp…