Docker
A platform for packaging applications and their dependencies into lightweight, portable containers that run consistently across any environment, from development to production.
Docker solves the "works on my machine" problem by bundling an application with its entire runtime environment into a container. A Dockerfile specifies the base image, dependencies, configuration, and startup commands. The resulting container image runs identically on a developer's laptop, in CI, and in production.
Containers are lighter than virtual machines because they share the host operating system kernel rather than running a full OS. This makes them fast to start (seconds vs. minutes), efficient with resources, and easy to distribute through container registries like Docker Hub or GitHub Container Registry.
For AI engineering, Docker is essential for reproducible model training and serving. A model training container pins exact versions of Python, CUDA, PyTorch, and every dependency, ensuring experiments are reproducible months later. Model serving containers package the model, inference code, and API layer into a single deployable unit that can be scaled horizontally behind a load balancer.
Related Terms
A/B Testing
A controlled experiment comparing two or more variants to determine which performs better on a defined metric, using statistical methods to ensure reliable results.
Feature Flag
A software mechanism that enables or disables features at runtime without deploying new code, used for gradual rollouts, A/B testing, and targeting specific user segments.
MLOps
The set of practices combining machine learning, DevOps, and data engineering to reliably deploy, monitor, and maintain ML models in production.
Model Serving
The infrastructure and systems that host trained ML models and handle inference requests in production, optimizing for latency, throughput, and cost.
Semantic Search
Search that understands the meaning and intent behind a query rather than just matching keywords, typically powered by embedding-based similarity comparison.
CI/CD (Continuous Integration / Continuous Deployment)
An automated software practice where code changes are continuously integrated into a shared repository, tested, and deployed to production, reducing manual intervention and accelerating delivery cycles.