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.