介绍
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