那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Docker容器的入門技巧

NVIDIA英偉達企業解決方案 ? 來源:NVIDIA英偉達企業解決方案 ? 作者:NVIDIA英偉達企業解 ? 2022-07-27 09:43 ? 次閱讀

上一篇內容為大家介紹了從 NVIDIA NGC 下載 DeepStream 6.1 的容器版鏡像到本地在 Jetson 上設備的基礎指令,不過在正式使用容器版 DeepStream6.1 之前,我們還是需要為入門用戶提供基本的使用方式與一些小技巧。

Jetson Orin 開發套件內置 64GB EMMC 存儲,并且很容易擴充 64G 甚至更大的 NVME 存儲設備,可以有非常充沛的空間,在這種情況下就非常推薦使用 Docker 容器技術,能有效簡化應用軟件的安裝與調試工作,非常適合用來開發與部署較為復雜的多功能智能應用,并且在 NVIDIA NGC 上提供了非常豐富的 Docker 版本應用鏡像文件,用戶只要一條指令便可輕松下載使用,這是邊緣計算非常重要的一項應用技術。

Docker 是一種比較新的 “容器” 技術,是 NVIDIA 近年來非常大力推廣的應用重點,越來越多的 GPU 開發環境都以 Docker 鏡像(或稱為 “倉” )形式提供,具備以下的優點與特性:

1、輕量級:這是相較于虛擬機的比對,容器內不需要獨立操作系統,它是基于主機上的操作系統,透過一些映射指令去指向資源路徑。大部分的容器鏡像都在數十 MB 到數 GB 大小規模。

2、硬件調度能力:這是 NVIDIA 非常喜歡 Docker 容器技術的重點之一,虛擬機環境對 GPU 支持能力并不好,得透過底層穿透(pass through)方式調用,但容易影響系統穩定性。Docker 容器直接與操作系統交互運作,只要主機上操作系統裝好 NVIDIA GPU 的驅動,甚至不需要安裝 CUDA 開發包,在 Docker 容器內就能輕松用上 GPU 并行計算的功能。

3、封裝完整:相較于 conda 或 virtualenv 這類環境虛擬技術而言,Docker 容器的封裝更為完整而且獨立,這在開發 Python 相關應用時更加明顯,因為 Python 版本升級太頻繁,相關依賴包之間的版本牽動關系復雜,而 Docker 容器的封裝就顯得非常有效,并且移植十分簡便。

Docker 作為一個開源的應用容器引擎,允許開發者很方便地打包應用程序和依賴庫到可移植的容器中,然后發布到任何流行的 Linux 設備上,Docker 完全使用沙箱機制,容器之間相互獨立,不存在任何接口,因此,允許開發者在同一臺機器上,運行不同環境的應用程序與服務,大大簡化應用程序(或者服務)的運維操作,同時也提高了開發與測試效率。

對于 CUDA 設備的調用,需要 NVIDIA 自行開發的 nvidia-docker2 指令轉換插件的協助,在 x86 設備上都需要自行安裝 Docker 管理機制與 nvidia-docker2 界面,不過 JetPack 都為 Jetson 安裝好了這兩個元件,我們只要使用就可以。

現在就開始教大家如何使用 Docker 容器,以及從 NVIDIA NGC 中心下載可以在 Jetson 設備上使用的鏡像。

1、檢查 Docker 環境與修改儲存路徑:

用 JetPack 安裝好系統之后,直接輸入以下指令,就能檢查目前系統中 Docker 的所有狀態信息

sudo  docker  info

可以看到一長串關于 Docker 環境的內容,由于信息量較大就不在這里單獨列出所有內容。如果要單純查看版本號,只要執行以下指令就可以:

sudo  docker  version

現在會看到如下版本信息,包括用戶(Client)端與服務(Server)端:

cd5e4032-0ce3-11ed-ba43-dac502259ad0.png

如果要看最簡單的版本信息,那么下面指令是最適合的:

sudo  docker  --version

要檢查目前 Docker 系統放置鏡像文件的路徑,可以執行以下指令:

sudo  docker  info  |  grep  -i  root

系統預設的存放路徑為 /var/lib/docker,如果有自己添加的額外 NVME 存儲設備,可以在 /etc/docker/daemon.json 文件中添加以下指令,調整存放路徑:

# 文件 /etc/docker/daemon.json{"data-root": "<自己指定路徑>",    "runtimes": {        "nvidia": {            "path": "nvidia-container-runtime",            "runtimeArgs": []        }    }}

修改完后執行以下指令,讓新的設定值生效:

sudo  systemctl  daemon-reloadsudosystemctlrestartdocker.service

現在可以檢查看看存儲的路徑是否更新。

2、簡化 Docker 指令:

這個應用完全依賴指令操作,在 Ubuntu 操作系統時又需要 “sudo” 取得操作權限,例如執行 “docker info” 指令,會出現下面信息,表示權限不足。

cd98575e-0ce3-11ed-ba43-dac502259ad0.png

我們可以執行以下步驟,在執行 Docker 指令時可以不需要使用 “sudo”:

sudo  groupadd  dockersudo  gpasswd  -a  ${USER}  dockersudo  service  docker  restartnewgrp-docker

當然,這只是簡化權限的問題,僅提供一個參考。

3、從 NGC 尋找合適的鏡像文件:

訪問http://ngc.nvidia.com/會出現如下畫面,在左上方 “搜索欄(漏斗圖標)” 中輸入“l4t”關鍵字,就會列出能在 Jetson 上運行的鏡像列表。

cdb8c9a8-0ce3-11ed-ba43-dac502259ad0.png

目前已經提供近 20 個容器鏡像,分為以下 6 大類別:

(1)基礎類:

  • NVIDIA L4T Base:

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-base

  • NVIDIA L4T CUDA:

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-cuda

  • NVIDIA Container Toolkit:

https://catalog.ngc.nvidia.com/orgs/nvidia/teams/k8s/containers/container-toolkit

(2)深度學習類:

  • NVIDIA L4T ML:深度學習綜合開發環境

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-ml

  • NVIDIA L4T PyTorch:

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-pytorch

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-tensorflow

  • NVIDIA L4T TensorRT:

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-tensorrt

(3)視覺類:

  • DeepStream-l4t

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/deepstream-l4t

  • DeepStream L4T - Intelligent Video Analytics Demo

https://catalog.ngc.nvidia.com/orgs/nvidia/helm-charts/video-analytics-demo-l4t

  • DeepStream People Detection Demo on Jetson

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/deepstream-peopledetection

  • Gaze Demo for Jetson/L4T

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/jetson-gaze

  • Pose Demo for Jetson/L4T

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/jetson-pose

(4)對話類:

  • Voice Demo for Jetson/L4T

https://catalog.ngc.nvidia.com/orgs/nvidia/containers/jetson-voice

  • Riva Speech Skills

https://catalog.ngc.nvidia.com/orgs/nvidia/teams/riva/containers/riva-speech

(5)教學類:

  • DLI Getting Started with AI on Jetson Nano

https://catalog.ngc.nvidia.com/orgs/nvidia/teams/dli/containers/dli-nano-ai

  • DLI Building Video AI Applications at the Edge on Jetson Nano

https://catalog.ngc.nvidia.com/orgs/nvidia/teams/dli/containers/dli-nano-deepstream

(6)醫療類:專屬于 Clara AGX 的應用容器鏡像。

4、下載 NVIDIA L4T ML 鏡像并創建容器

這是能在 Jetson 設備上執行的最完整的機器學習(MachineLearning)軟件棧鏡像,訪問 https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-ml 之后就能看到容器內所包含的內容,以 l4t-ml:r32.6.1-py3 版本為例,其打包的工具與功能庫如下:

  • TensorFlow 1.15.5

  • PyTorch v1.9.0

  • torchvision v0.10.0

  • torchaudio v0.9.0

  • onnx 1.8.0

  • CuPy 9.2.0

  • numpy 1.19.5

  • numba 0.53.1

  • OpenCV 4.5.0 (with CUDA)

  • pandas 1.1.5

  • scipy 1.5.4

  • scikit-learn 0.23.2

  • JupyterLab 2.2.9

這已經涵蓋我們所需要的絕大部分內容,只要下載鏡像后生成執行的容器,就能直接使用里面的開發環境,這樣能節省非常大量的安裝與調試的時間。

點擊頁面右上角 “Pull Tag” 按鈕,會列出目前可下載版本的鏡像文件,最好選擇配合目前 JetPack 版本的鏡像,例如用 JetPack5.0 DP 安裝的 Jetson Orin 開發套件,其 L4T 版本為 34.1.1,就用下面指令下載 r34.1.1-py3 鏡像:

docker  pull  nvcr.io/nvidia/l4t-ml:r34.1.1-py3

下載完成之后可以用以下指令檢查:

docker  images

如果出現以下信息,則表示下載完成。

REPOSITORY        TAG           IMAGE ID       CREATED      SIZEnvcr.io/nvidia/l4t-mlr34.1.1-py393c715e8751b6weeksago16.2GB

這個方法可以用在任何 L4T 版本鏡像文件上。

下一篇文章我們將進一步帶著大家用這個鏡像文件去創建容器,并且開始執行演示或開發的內容。

審核編輯:湯梓紅


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    5076

    瀏覽量

    103716
  • 容器
    +關注

    關注

    0

    文章

    499

    瀏覽量

    22120
  • Docker
    +關注

    關注

    0

    文章

    492

    瀏覽量

    11962

原文標題:NVIDIA Jetson 系列文章(5):使用Docker容器的入門技巧

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何使用 Docker容器化技術

    對于開發人員來說,Docker肯定都不陌生,今天小編帶大家重新學習一下Docker。 什么是 Docker 官話: Docker 是一種開源的容器
    的頭像 發表于 09-30 11:24 ?1.6w次閱讀

    ARM平臺實現Docker容器技術

    本帖最后由 Tronlong創龍科技 于 2024-7-19 16:50 編輯 什么是Docker? (1)Docker的架構Docker是一個開源的應用容器引擎,讓開發者可打包
    發表于 07-17 11:05

    ARM平臺實現Docker容器技術

    本帖最后由 Tronlong創龍科技 于 2024-7-26 08:51 編輯 什么是Docker? (1)Docker的架構Docker是一個開源的應用容器引擎,讓開發者可打包
    發表于 07-25 14:36

    如何在Docker中創建容器

    Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal
    發表于 01-03 15:58

    理解Docker容器并暢玩docker

    !命令行!玩docker,簡單幾句命令就夠了。Docker容器響應迅速,執行迅速,回憶一下VM啟動要多久?最佳的試驗場所,想怎么玩怎么玩,rm -rf /* 根本不是大問題。主機上刪掉容器
    發表于 11-05 09:54

    請問docker容器如何查看日志?

    docker容器如何查看日志
    發表于 11-19 07:29

    Docker容器管理命令(一)

    1、Docker容器管理命令的使用方法查看當前主機本地docker鏡像:啟動容器必須依賴鏡像,所以要獲取到鏡像的唯一標識docker
    發表于 04-20 17:55

    Docker容器管理命令(二)

    1、Docker容器管理命令的使用方法批量刪除docker 容器docker cp命令docker
    發表于 04-21 11:31

    Docker入門指南

    ?簡化Arm硬件的應用程序開發?在開始之前在云中工作并在邊緣部署本指南假設您熟悉容器概念。如果你不熟悉容器的概念,你可以在Docker入門中了解更多。 您還需要以下內容: ?訪問Git
    發表于 08-02 06:09

    Docker:微容器的優勢與構建教程

    非必要的東西也打包進去,所以最后構建出來的鏡像就很龐大,直接導致我們的容器也變得很大。對于剛入門Docker新手來說,大家一開始基本都是用的Docker官方鏡像倉庫里提供的基礎鏡像,
    發表于 10-10 11:32 ?0次下載

    docker技術入門與實戰

    入門docker的首本書,系統化掌握容器技術棧
    發表于 06-09 14:38 ?0次下載

    docker容器刪除后數據還在嗎

    Docker作為一個容器化平臺,提供了輕量級的虛擬化解決方案,能夠方便地創建、部署和管理應用程序。然而,對于Docker容器的數據持久性是一個令人關注的問題。當我們刪除一個
    的頭像 發表于 11-23 09:32 ?1940次閱讀

    docker容器容器之間通信

    Docker是一種輕量級容器化技術,能夠將應用程序及其依賴項封裝在一個獨立、可移植的容器中。而容器化的應用程序通常是以分布式方式設計的,因此實現容器
    的頭像 發表于 11-23 09:36 ?1619次閱讀

    docker進入容器的方法有哪些

    Docker是一種流行的容器化平臺,它能夠快速構建、交付和運行應用程序。在使用Docker時,我們經常需要進入容器進行調試、管理和運行命令等操作。本文將詳細介紹
    的頭像 發表于 11-23 09:45 ?1.1w次閱讀

    docker容器有幾種狀態

    Docker 是一種流行的容器化平臺,它能夠幫助開發人員將應用程序和其依賴打包成一個獨立的容器,并且能夠在不同的環境中進行部署和運行。在 Docker 中,
    的頭像 發表于 11-23 09:50 ?2369次閱讀
    最新百家乐网评测排名| 百家乐官网技真人荷官| 罗甸县| 皇冠足球網| 岳普湖县| 苏尼特左旗| 乐九百家乐官网娱乐城| 太阳城百家乐官网优惠| 云鼎百家乐官网现金网| 网上百家乐官网能作弊吗| 新手百家乐官网指点迷津| 百家乐官网双龙出海注码法| 百家乐官网娱乐平台真人娱乐平台| 合乐8百家乐官网娱乐城| 百家乐官网博弈指| 博彩网百家乐中和局| 欧洲百家乐的玩法技巧和规则| 太阳城申博娱乐城| 香港六合彩公司| 淘金百家乐官网现金网| 百家乐官网赌博博彩赌博网| 鼎尚百家乐官网的玩法技巧和规则 | 风水24个向的意思| 澳门百家乐国际娱乐城| 不夜城百家乐的玩法技巧和规则 | 望都县| 百家乐官网变牌桌| 百家乐大老娱乐| 百家乐官网龙虎扑克| 阳宅24方位座向| 皇冠百家乐在线游戏| 大发888网址开户| 望奎县| 百家乐官网家居| 百家乐水晶筹码| 大发888官方下| 百家乐官网论坛白菜| 百家乐e78| bet365在线体育投注| 百家娱乐| 鼎龙百家乐官网的玩法技巧和规则|