Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.
In my opinion, the best way to get started is to watch the Docker training videos(and follow along by running the commands). There is also another official Docker tutorial(Linux,Windows, Mac).
This section will discuss a few basic concepts and show some useful commands. Please also use the resources in the Getting Started section above to get familiar with Docker.
Overview
Docker containers are processes that run natively on your(Linux) operating system, but are isolated in terms of access to system resources such as memory, other processes and disk. You can think on them as similar to virtual machines, but they are not isolated by a virtualization later. See this SO thread for a bit more detail.
Docker Daemon
The Docker daemon is the main Docker process that run on your(Linux) operating system. The commandline client communicates with the daemon via its API to manage everything Docker-related, such as images, containers, networks, volumes and more.
To see a summary of your Docker information you can run
Application are generally packaged as Docker images. Images contain all the necessary code, libraries and resources to run a specific application. See here for a huge list of applications published as Docker images. Docker images are built using Dockerfiles.
Once you pull(download) an image, you can run a container from it. This basically makes a copy of the image and starts executing the main process(usually specified by the CMD instruction in the Dockerfile). You can think of an image like an ISO file, and a container as a the running application or OS stored in that ISO file.
Getting Started
Articles
Docker Compose
Basics
Overview
Docker Daemon
docker info
Images vs Containers
docker images