Containers are lightweight, secure, and portable environments designed for developing, testing, and hosting software applications. Containers run on top of VMs or bare-metal servers and were pioneered by a company called Docker. They have recently become popular in the ML industry.
Container orchestrationis dominated by Kubernetes, an open source system for automating and scaling application deployment.
Container registries are where containers are hosted. Examples include DockerHub and Amazon ECR.
A Docker file is a set of instructions (software packages to include) in a Docker image. Deploying applications using Docker containers is straightforward.
Build: Create an image from a Docker file
Push: Save image in a registry
Run: Application can be run anywhere
Pull: Download containers from a registry
Docker tags specify a version e.g. username/image_name:tag_name
Containers + Gradient
Gradient can run any Docker container (for Notebooks, Experiments, Jobs, and Deployments) hosted on a public or private container registry.
Gradient maintains a list of containers pre-loaded with various up-to-date ML frameworks, libraries, drivers, and more.
Gradient also includes a way to build containers from a Dockerfile without any expertise in Docker itself.