The first thing to learn with any new technology is the lingo. Like anything, Docker has its own language. This post will give a brief overview of the terminology and some of the core components:

Docker client – command line that can be installed on Mac OS X or Windows to control most of the Docker workflow and talk to Docker servers
Docker server – Docker running in daemon mode on a Linux server. The servers starts, runs, and stops/destroys containers.
Docker images – layered filesystems described via metadata that represent all the dependencies necessary to run an application.
Docker repository – the library of available Docker images, can be public (Docker Hub) or private
Docker container – a single instance of a Linux container built from the Docker image. There can be many containers built from a single Docker image.
Docker host – the underlying Linux operating system that hosts the Docker daemon
In addition to the core lingo, there are some core technologies that need to be understood as well:

Docker Hub – public repository of Docker images
Docker Trusted Registry – private image repository
Docker Toolbox – specialized installer for Docker tools on Mac and Windows
Docker Machine – automated Docker provisioning
Docker Swarm – host clustering and container scheduling
Docker Compose – define multi-container applications
Docker Registry – open source Docker image distribution
Docker Engine – creates and runs Docker containers
Kitematic – desktop Docker GUI for Mac
Notary – trusted content distribution for signing images
RunC – universal container runtime
Libnetwork – programming interface for the Container Network Model (CNM)