Docker solves software packages dependency problem to some extent. Containers include the application and all of its dependencies – but share the kernel with other containers, thereby have much smaller footprint than virtual machines.

After installation (depends on platform),

# downloads from docker hub and runs it
 docker run hello-world
# shows all docker images (filesystems)
 docker ps -a
# get CentOS image
 docker pull centos:7
# Ubuntu image download and gain root shell
 docker run -t -i ubuntu /bin/bash

Some use cases are described in docker compose.