• 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
      

      输出应如下所示:

      1. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
      2. loop0 7:0 0 16M 1 loop
      3. mmcblk1 179:0 0 59.5G 0 disk
      4. ├─mmcblk1p1 179:1 0 58G 0 part /
      5. ├─mmcblk1p2 179:2 0 128M 0 part
      6. ├─mmcblk1p3 179:3 0 768K 0 part
      7. ├─mmcblk1p4 179:4 0 31.6M 0 part
      8. ├─mmcblk1p5 179:5 0 128M 0 part
      9. ├─mmcblk1p6 179:6 0 768K 0 part
      10. ├─mmcblk1p7 179:7 0 31.6M 0 part
      11. ├─mmcblk1p8 179:8 0 80M 0 part
      12. ├─mmcblk1p9 179:9 0 512K 0 part
      13. ├─mmcblk1p10 179:10 0 64M 0 part
      14. ├─mmcblk1p11 179:11 0 80M 0 part
      15. ├─mmcblk1p12 179:12 0 512K 0 part
      16. ├─mmcblk1p13 179:13 0 64M 0 part
      17. └─mmcblk1p14 179:14 0 879.5M 0 part
      18. zram0 251:0 0 1.8G 0 disk [SWAP]
      19. zram1 251:1 0 1.8G 0 disk [SWAP]
      20. zram2 251:2 0 1.8G 0 disk [SWAP]
      21. zram3 251:3 0 1.8G 0 disk [SWAP]
      22. 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 组件都已预安装,因此可以跳过此步骤。

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

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

      sudo vi /etc/docker/daemon.json
      

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

      1. {
      2. "runtimes": {
      3. "nvidia": {
      4. "path": "nvidia-container-runtime",
      5. "runtimeArgs": []
      6. }
      7. },
      8. "default-runtime": "nvidia"
      9. }
    4. 重启 Docker

      sudo systemctl daemon-reload && sudo systemctl restart docker
      

    将 Docker 目录迁移到 SSD

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

    1. 停止 Docker 服务。

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

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

      sudo vi /etc/docker/daemon.json
      

      插入如下行。"data-root"

      1. {
      2. "runtimes": {
      3. "nvidia": {
      4. "path": "nvidia-container-runtime",
      5. "runtimeArgs": []
      6. }
      7. },
      8. "default-runtime": "nvidia",
      9. "data-root": "/ssd/docker"
      10. }
    4. 重命名旧的 Docker 数据目录

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

      1. sudo systemctl daemon-reload && \
      2. sudo systemctl restart docker && \
      3. 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

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

    最终验证

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

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

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

  • 相关阅读:
    汇付国际为跨境电商赋能:做合规的跨境支付平台!
    【0234】PgBackendStatus 记录当前postgres进程的活动状态
    软考高项(十四)项目沟通管理 ★重点集萃★
    义乌再次位列第一档!2022年跨境电商综试区评估结果揭晓!
    考研英语语法(十)
    ​LeetCode解法汇总2525. 根据规则将箱子分类
    Android Studio实现内容丰富的安卓校园超市
    Rainbond PipeLine插件部署与springboot应用部署实践
    Android开源 Skeleton 骨架屏 V1.3.0
    go学习(三、面向对象)
  • 原文地址:https://blog.csdn.net/weixin_46151178/article/details/134313763