Docker is a key tool used in aiWARE. All engines in aiWARE are packaged as executable Docker containers, which are exposed via webhook through Veritone's Engine Developer Toolkit.
Docker
What is Docker?
Docker provides a way to run engines securely isolated in a container, packaged with all dependencies and libraries. Docker containers deployed on Linux can be updated on-the-fly, so that you can easily swap builds to update your engine with bug fixes or the latest version. Today, aiWARE supports Linux Docker containers.
Docker images and containers on aiWARE
Engines on aiWARE are deployed as Docker images. Each image is an executable package which includes everything needed to run your engine: the code, a runtime, libraries, environment variables, and configuration files. A container is a runtime instance of an image. This is what the image becomes in memory when executed. When an engine needs to process tasks, one or more containers (or instances) of that engine may be started to process that task. When all tasks are complete, containers will be shut down to conserve resources.