Docker
Docker is a platform for developing, shipping, and running applications in containers. It packages software into standardized units called containers that include everything needed to run: code, runtime, libraries, and system tools.
Overview
Docker introduced containerization to the mainstream with its Docker Engine (based on containerd and runc). Containers are lightweight compared to virtual machines because they share the host OS kernel. Docker also provides the Docker Hub registry, Docker Compose for multi-container apps, and Docker Desktop for developers.
Key Features
- Container runtime using OCI (Open Container Initiative) standards
- Dockerfile-based image building with layered filesystem
- Docker Hub for sharing and managing container images
- Docker Compose for defining and running multi-container applications
- Docker Swarm for container orchestration (simpler alternative to Kubernetes
- Docker Desktop for local development
Licensing
Docker uses a dual model:
- Open Source: The Docker Engine source code is open source (Apache 2.0). The Dockerfile format and image specification are open.
- Commercial: Docker Desktop requires a paid subscription for commercial use in organizations with more than 250 employees or more than $10 million in annual revenue. Docker Enterprise is a paid commercial product.
See Docker Desktop License for details.
Official Resources
- Website: https://www.docker.com/
- Documentation: https://docs.docker.com/
- GitHub: https://github.com/docker