Docker follows a client-server architecture with these main components:
- Docker Client: Command-line interface that communicates with Docker daemon
- Docker Daemon (dockerd): Background service managing containers, images, and networks
- Docker Images: Read-only templates used to create containers
- Docker Containers: Running instances of Docker images
- Docker Registry: Storage for Docker images (e.g., Docker Hub)
- Docker Engine: Complete containerization platform combining daemon, REST API, and CLI