eSaude Docker Primer
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.

Source: What is Docker?

Getting Started

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).

Here is a popular introductory video:


The following two articles are recommended reading.

Docker Compose

“Compose is a tool for defining and running multi-container Docker applications”
                                                                                              - Docker Compose Docs
This article provides a quick introduction to Docker Compose.


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.


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 command line 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

docker info

Images vs Containers

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.

To see a list of all the images you have, run:

docker images

To download the Alpine Linux image, run: