1. arivis Knowledge Hub
  2. Vision4D / arivis Pro
  3. arivis AI: Machine Learning and Deep Learning

Docker support for Instance Segmentation

What is Docker?

https://www.docker.com/

Docker is an open-source platform that allows you to build, test, and deploy applications quickly and easily. Docker packages software into standardized units called containers, which contain everything the software needs to run. Containers virtualize the operating system of a server, essentially running the package as a Virtual Machine (VM).

How do we use Docker?


Arivis Pro 4.2 introduced the possibility of performing instance segmentation using Deep Learning. This DL segmentation tool relies on various layers of dependent libraries. Rather than force configurations that could cause conflict with other software users might also have on their system, arivis uses Docker technology to embed all the necessary dependencies for these DL models into a Docker container. A Docker container has all the information required to execute the segmentation sandboxed in such a way as to be independent of the system configuration and without risking conflicts with other software installations. 

What is difference between Docker Desktop and Docker Engine?


Docker Desktop

Targeted for workstation use, this is free to use (personal use, academia and open source projects) but has a commercial use subscription (250 employees OR more than $10 million in annual revenue). Docker Desktop is more user-friendly and is aimed at developers and those simply using Docker. It provides an easy-to-use GUI interface, includes additional tools like the Docker Dashboard for easier container management, and automatically updates to the latest version.

For detailed information see the Docker Desktop docs: https://docs.docker.com/desktop/


Arivis Pro 4.2 onwards and ZEN products can connect with Docker Desktop on the local workstation.

See Knowledge Base article:

https://kb.arivis.com/installing-docker-for-ai-instance-segmentation

Docker Engine

It is the main service which runs containers, this runs a Linux kernel Virtual Machine (VM). Docker Engine is open source and free to use, it operates primarily through the command-line interface and is often used in production environments. It’s highly configurable and can be adjusted to suit a variety of use-cases.

The engine is an integral component of any docker installation, even Docker Desktop. In a server environment, the engine can be installed standalone.

For detailed information see the Docker Engine docs: https://docs.docker.com/engine/


Arivis Pro 4.3 onwards can connect with Docker Engine using TCP and Remote Docker support.

See Knowledge Base articles:

Installing Docker Engine on Amazon Cloud (AWS)

Installing Docker Engine on Azure Cloud

Docker Virtualization Requirements?

Virtualization features in both the BIOS (on bear-metal installations) and Operating System are required for containers to work.  Typically Intel Virtualization Technology (VT-x) or SVM Mode (AMD-V) on AMD systems.

https://docs.docker.com/desktop/troubleshoot-and-support/troubleshoot/topics/#virtualization

Docker GPU Support?

Only nVidia drivers are currently supported for CUDA processing.

For Docker Desktop, WSL2 must be used for Paravirtualization support.
https://docs.docker.com/desktop/features/gpu/


For Docker Engine, installation of the nVidia container toolkit is required.
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html