Install Zivid in Docker
Docker 컨테이너에 Zivid 소프트웨어를 설치하는 방법은 운영체제 및 하드웨어에 따라 다릅니다. 사용 중인 설정에 적용되는 지침을 따르세요.
Windows
Windows에서는 Docker Desktop이 WSL 백엔드를 통해 Linux 컨테이너를 실행합니다.
Intel
Intel 경로는 OpenCL 컴퓨트 백엔드를 사용합니다. WSL에서는 OpenCL을 Docker 컨테이너에서 사용할 수 없으므로 Windows에서는 OpenCL 백엔드를 사용할 수 없습니다. 대신 NVIDIA 드롭다운에 표시된 대로 CUDA 백엔드를 사용하세요. 이는 NVIDIA GPU가 필요하므로 Intel GPU로는 Windows에서 Docker로 Zivid를 실행할 수 없습니다.
NVIDIA
WSL에서는 NVIDIA GPU 드라이버가 Docker 컨테이너에 CUDA를 노출하므로 CUDA 백엔드가 사용됩니다.
Prerequisites
WSL 2 기반 엔진이 활성화된 Docker Desktop .
nvidia-smi를 실행하여 확인한 최신 드라이버가 설치된 NVIDIA GPU.
Ubuntu 24.04에서 Zivid 소프트웨어를 사용하는 최소 Docker 이미지를 위한 다음 Dockerfile 를 다운로드하세요.
FROM nvidia/cuda:12.5.1-runtime-ubuntu24.04
RUN apt-get update && apt-get install --assume-yes \
wget
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
RUN wget --quiet \
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u24/amd64/zivid-cuda_2.18.0+1b44dbef-1_amd64.deb \
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u24/amd64/zivid-tools_2.18.0+1b44dbef-1_amd64.deb \
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u24/amd64/zivid-genicam_2.18.0+1b44dbef-1_amd64.deb
RUN apt-get update
RUN apt-get install ./*.deb --assume-yes && rm ./*.deb
Dockerfile을 배치한 디렉토리로 이동한 다음, Windows 터미널에서 다음을 실행하여 컨테이너를 빌드하고 실행합니다.
docker build -t <image> .
docker run --interactive --tty --gpus all <image>
여기서 <image> 는 선택한 이미지 이름입니다(예: zivid). 이 이미지는 이미 CUDA 백엔드를 대상으로 하므로 추가 구성이 필요하지 않습니다.
Zivid SDK가 작동하는지 확인하려면 카메라의 IP 주소로 연결하세요. Docker Desktop은 WSL 가상 머신에서 컨테이너를 실행하는데, 이 가상 머신은 mDNS 검색을 통해 LAN상의 카메라에 접근할 수 없으므로 Windows에서는 ZividListCameras 로 카메라를 찾을 수 없습니다. IP 주소를 통한 직접 연결은 정상적으로 작동합니다.
카메라에 연결하는 간단한 프로그램을 작성하고, 172.28.60.5 를 사용 중인 카메라의 IP 주소로 바꾸세요.
#include <Zivid/Zivid.h>
#include <iostream>
int main()
{
Zivid::Application zivid;
auto camera = zivid.connectCamera(Zivid::CameraAddress{ "172.28.60.5" });
std::cout << "Connected to " << camera.info().serialNumber() << std::endl;
}
컨테이너 내부에서 이를 빌드하고 실행합니다. 카메라 시리얼 번호가 출력되면 Zivid SDK가 정상적으로 작동하는 것입니다. IP 주소 또는 호스트 이름으로 연결하는 방법에 대한 자세한 내용은 Connecting to camera(s) in Docker 를 참고하세요.
참고
카메라는 한 번에 한 곳에서만 연결할 수 있습니다. 컨테이너에서 연결하기 전에 Zivid Studio나 다른 애플리케이션에서 카메라 연결을 해제하세요. 그렇지 않으면 카메라의 응답을 기다리다가 연결이 시간 초과됩니다.
Ubuntu
Prerequisites
Intel
Intel을 사용하는 경우 호스트 컴퓨터에 Intel GPU 드라이버가 이미 설치되어 있어야 합니다. 그렇지 않은 경우 Intel drivers 를 다운로드하여 설치하세요.
Zivid 소프트웨어를 사용하여 Ubuntu 24.04에서 최소 Docker 이미지용 다음 Dockerfile 를 다운로드하세요.
FROM ubuntu:24.04
RUN apt-get update && apt-get install --assume-yes \
wget \
intel-opencl-icd
RUN wget --quiet \
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u24/amd64/zivid-opencl_2.18.0+1b44dbef-1_amd64.deb \
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u24/amd64/zivid-tools_2.18.0+1b44dbef-1_amd64.deb \
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u24/amd64/zivid-genicam_2.18.0+1b44dbef-1_amd64.deb
RUN apt-get update
RUN apt-get install ./*.deb --assume-yes && rm ./*.deb
Dockerfile을 배치한 디렉토리로 이동하고 다음을 실행하여 컨테이너를 빌드하고 실행합니다.
sudo docker build -t <image> .
sudo docker run --interactive --tty --device=/dev/dri --network=host <image>
여기서 <image> 는 선택한 이미지 이름입니다(예: zivid). 이제 Zivid가 설치된 Ubuntu에서 대화형 세션에 접속했을 것입니다. --network=host 인수를 사용하면 컨테이너가 호스트 네트워크에서 카메라를 검색할 수 있습니다.
NVIDIA
먼저, 호스트 컴퓨터에 NVIDIA 드라이버 NVIDIA drivers 를 설치합니다. 그런 다음 호스트에 NVIDIA Container Toolkit을 설치합니다.
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/stable/deb/nvidia-container-toolkit.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 \
&& \
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
그런 다음 Docker를 구성하여 NVIDIA Container Runtime을 사용합니다.
sudo nvidia-ctk runtime configure --runtime=docker
Docker daemon을 다시 시작합니다.
sudo systemctl restart docker
이제 Docker를 통해 NVIDIA GPU에 액세스할 수 있습니다. Ubuntu 24.04에서 Zivid 소프트웨어를 사용하여 최소 Docker 이미지용 다음 Dockerfile 를 다운로드하세요.
FROM nvidia/cuda:12.5.1-runtime-ubuntu24.04
RUN apt-get update && apt-get install --assume-yes \
wget
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
RUN wget --quiet \
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u24/amd64/zivid-cuda_2.18.0+1b44dbef-1_amd64.deb \
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u24/amd64/zivid-tools_2.18.0+1b44dbef-1_amd64.deb \
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u24/amd64/zivid-genicam_2.18.0+1b44dbef-1_amd64.deb
RUN apt-get update
RUN apt-get install ./*.deb --assume-yes && rm ./*.deb
Dockerfile을 배치한 디렉토리로 이동하고 다음을 실행하여 컨테이너를 빌드하고 실행합니다.
sudo docker build -t <image> .
sudo docker run --interactive --tty --device=/dev/dri --gpus=all --network=host <image>
여기서 <image> 는 선택한 이미지 이름입니다(예: zivid). 이제 Zivid가 설치된 Ubuntu에서 대화형 세션에 접속했을 것입니다. --network=host 인수를 사용하면 컨테이너가 호스트 네트워크에서 카메라를 검색할 수 있습니다.
Zivid SDK가 작동하는지 확인하려면 컨테이너 내부에서 다음을 실행하세요.
ZividListCameras
오류가 없으면 Zivid SDK가 Docker 컨테이너 내에서 작동하고 있는 것입니다.
참고
기본 고정 IP 172.28.60.5 를 사용하는 카메라만 찾을 수 있습니다. 사용자 지정 IP로 하나 또는 여러 대의 카메라에 연결하려면 Connecting to camera(s) in Docker 를 참고하세요.
Jetson Linux
Prerequisites
NVIDIA Container Runtime이 포함된 JetPack.
참고
NVIDIA Container Runtime이 JetPack에 포함되어 있으므로 NVIDIA Container Toolkit을 별도로 설치할 필요가 없습니다.
이 페이지에서 제공하는 Dockerfile은 x86 Ubuntu를 대상으로 하며, ARM64인 Jetson과는 호환되지 않습니다.
사용 중인 JetPack 버전에 따라 기본 이미지를 선택하세요:
JetPack 5 및 JetPack 6: NVIDIA L4T Base (
nvcr.io/nvidia/l4t-base)를 사용하세요. 설치된 JetPack에 맞는 태그를 선택하세요. 이는cat /etc/nv_tegra_release를 실행하여 확인할 수 있습니다(예:R36 (release), REVISION: 3.0은 태그r36.3.0에 해당합니다).JetPack 7 이상: NVIDIA 드롭다운과 동일한 NVIDIA CUDA 컨테이너(
nvcr.io/nvidia/cuda)를 사용하세요.
최소 Dockerfile은 다음과 같으며, 여기서 <base-image> 는 위에서 선택한 기본 이미지입니다.
FROM <base-image>
RUN apt-get update && apt-get install --assume-yes \\
wget
RUN wget --quiet \\
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u22/arm64/zivid-cuda_2.18.0+1b44dbef-1_arm64.deb \\
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u22/arm64/zivid-tools_2.18.0+1b44dbef-1_arm64.deb \\
https://downloads.zivid.com/sdk/releases/2.18.0+1b44dbef-1/u22/arm64/zivid-genicam_2.18.0+1b44dbef-1_arm64.deb
RUN apt-get update
RUN apt-get install ./*.deb --assume-yes && rm ./*.deb
패키지 URL의 Ubuntu 버전(u22 또는 u24)을 Install Zivid on Jetson Linux 에 나열된 JetPack 버전에 맞게 일치시키세요.
다음을 실행하여 컨테이너를 실행합니다
sudo docker run --interactive --tty --runtime=nvidia --gpus=all --network=host <image>
여기서 <image> 는 선택한 이미지 이름입니다(예: zivid). --network=host 인수를 사용하면 컨테이너가 호스트 네트워크에서 카메라를 검색할 수 있습니다.
Zivid SDK가 작동하는지 확인하려면 컨테이너 내부에서 다음을 실행하세요.
ZividListCameras
오류가 없으면 Zivid SDK가 Docker 컨테이너 내에서 작동하고 있는 것입니다.
Version History
SDK |
변경 사항 |
|---|---|
2.18.0 |
CUDA 컴퓨트 백엔드를 사용하는 WSL 백엔드를 통해 Windows에서 Docker로 Zivid를 실행하는 기능을 지원하도록 추가했습니다. |