【邊緣AI系列】在NVIDIA Jetson NANO 上使用 Docker Container 部署視覺應用

Grady Huang
5 min readJul 12, 2020

--

在整個NVIDIA生態系中針對終端設備也推出了各種Jetson平台的開發板

包含Jetson AGX Xavier, Jetson TX2 系列, Jetson TX1和Jetson Nano裝置。

近期也提供了在Jetson平台上的NVIDIA Container Runtime Docker 環境,方便開發者在設備上的部署與管理。

Step0:確認你的JetPack SDK版本

#jetson_release

要沒有坑的正常運作記得要把NVIDIA Linux4Tegra (L4T) 更新到32.4.2以後的版本,如還安裝更新請參考NVIDIA SDK Manager

Step1:確認系統預先安裝好的Docker Container

#sudo dpkg --get-selections | grep nvidialibnvidia-container-tools		install
libnvidia-container0:arm64 install
nvidia-container-runtime install
nvidia-container-runtime-hook install
nvidia-docker2 install
#sudo docker info | grep nvidia+ Runtimes: nvidia runc

Step2:完成囉!可以來Pull各種需要的image下來使用

NVIDIA NGC中選擇Container並篩選出Tag:ARM相關的images

NVIDIA NGC

選擇一個想要部署的環境給他Pull下來

#sudo docker pull nvcr.io/nvidia/l4t-base:r32.4.3

Step3:跑起來!測試下在Container中是否可以正常使用

#sudo docker pull nvcr.io/nvidia/l4t-base:r32.4.3#xhost +#sudo docker run -it --rm --net=host --runtime nvidia  -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix nvcr.io/nvidia/l4t-base:r32.4.3

Step4:進入container root後,測試程式吧!

#apt-get update && apt-get install -y --no-install-recommends make g++
root@nano:/# cp -r /usr/local/cuda/samples /tmp
root@nano:/# cd /tmp/samples/5_Simulations/nbody
root@nano:/# make
root@nano:/# ./nbody

大功告成~你可以自由地在container的世界悠遊囉~

番外篇:修改Docker存放路徑:

Jetson NANO當我們的IMG或Container越來越多或越肥時,內部的空間可能會不夠使用,這時候可以修改Docker root dir 位置,避免系統空間被塞爆。

查看目前存位置:

#sudo docker info--------------------
//預設位置
Docker Root Dir:/var/lib/docker

編輯daemon.json修改存放路徑:

#sudo gedit /etc/docker/daemon.json

新增data-root參數,指定要修改存放的位置,儲存daemon.

{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}},
"data-root":"/media/nvidia/1AB27688B27667E1/docker_file"
}

重新啟動Docker:

#sudo systemctl restart docker

再次查看docker info,就會成功看見存放位置修改好囉!

再次進入Docker Container方式:

#sudo docker exec -it [Container 名稱或 ID] /bin/bash

參考資料

Grady Huang

--

--

Grady Huang
Grady Huang

Written by Grady Huang

平凡的工程從業人員,寫寫筆記避免隔天忘記~ 喜歡拍手👏就好

No responses yet