Docker uses a client-server architecture. The Docker client talks to the Docker daemon, which does the heavy lifting of building, running, and distributing your Docker containers. The Docker client and daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon. The Docker client and daemon communicate using a REST API, over UNIX sockets or a network interface.
Docker Engine is a client-server application with these major components:
A server which is a type of long-running program called a daemon process (the
A REST API which specifies interfaces that programs can use to talk to the daemon and instruct it what to do.
A command line interface (CLI) client (the
Image VS Container
- An Image is the application we want to run
- A Container is an instance of that image running as a process
- There can be many containers running of the same image
- Docker's default image "registry" is called Docker Hub (https://hub.docker.com
For full docker overview please see https://docs.docker.com/engine/docker-overview/