介紹
deepstream為dGPU和Jetson平臺提供dockers containers,這些鏡像可以方便開發者很快地部署deepstream應用。deepstream的docker images可以在NGC web中得到。
安裝Docker
Docker 是一個開源的容器化平臺,它允許你構建,測試,并且作為可移動的容器去部署應用,這些容器可以在任何地方運行。一個容器表示一個應用的運行環境,并且包含軟件運行所需要的所有依賴軟件。
- 卸載舊版本的docker engine
sudo apt-get remove docker docker-engine docker.io containerd runc
- 安裝docker engine
docker engine的安裝方式有很多種,本文以Docker軟件源的方式進行演示安裝過程。
- 設置Docker repository
- 更新apt package index,同時安裝packages來允許apt使用一個repository;
sudo apt-get update
sudo apt-get install \ca-certificates \curl \gnupg \lsb-release
2. 添加dockers的官方GPG key;
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
3. 使用以下的命令設置repository;
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
現在,docker的軟件源被啟用,可以安裝軟件源中任何可用的docker版本。
- 安裝最新的docker engine
- 更新apt package index;
sudo apt-get update
2. 安裝docker engine, containerd和docker compose;
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3. 測試docker engine 是否正確安裝;
sudo docker run hello-world
上面的命令,將下載一個test鏡像并在一個容器中運行它。當容器運行時,它將答應確認信息并退出。
安裝nvidia-container-toolkit
確認您的系統上已經安裝了 nvidia 驅動程序。如果沒有安裝,請按照 nvidia 官方文檔中的說明進行安裝。
- 設置package repository和GPG key;
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
- 安裝nvidia-container-toolkit包
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
- 配置docker daemon來識別NVIDIA Container Runtime;
sudo nvidia-ctk runtime configure --runtime=docker
- 重啟Docker daemon;
sudo systemctl restart docker
- 測試nvidia-container-toolkit 是否正常工作
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base nvidia-smi
該命令將在容器中運行 NVIDIA 的 nvidia-smi
命令,并顯示 NVIDIA 顯卡的信息。如果 nvidia-container-toolkit
正常工作,則應該可以看到 NVIDIA 顯卡的信息。如下圖所示:
安裝Deepstream Docker
- 打開NGC官網,https://catalog.ngc.nvidia.com/;
- 在Container選項中,搜索Deepstream;
- 登錄NGC賬號;
- 使用如下的命令登錄NGC docker registry;
a. Username: "$oauthtoken"
b. Password: "YOUR_NGC_API_KEY"
- 拉取鏡像文件并運行
# Pull the required docker. Refer Docker Containers table to get docker container name.
$ docker pull <required docker container name> # nvcr.io/nvidia/deepstream:6.1.1-devel
# Step to run the docker
$ export DISPLAY=:0
$ xhost +
$ docker run -it --rm --net=host --gpus all -e DISPLAY=$DISPLAY --device /dev/snd -v /tmp/.X11-unix/:/tmp/.X11-unix <required docker container name>
創建容器
sudo docker run \--gpus all \-v /home/sf/ds_share:/workspace \-p 8866:22 \--name easyai \--restart=always \-itd b8179aaa2d73 \/bin/bash
啟動容器
sudo docker exec -it ${docker_container_id} /bin/bash
參考鏈接
- https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_docker_containers.html
- https://docs.docker.com/engine/install/ubuntu/
- https://blog.csdn.net/u011119817/article/details/110386179