Anton Antonov
It's actually a company that was previously called dotCloud.
It started off as a side-project and was only open-sourced recently in 2013.
What people commonly call Docker is actually the Docker Engine
The Docker Engine is a:
Docker Engine allows you to package up application code
and dependencies together in an isolated container
that share the OS kernel on the host system.
The in-host daemon communicates with
the Docker Client to execute commands to
build, ship and run containers.
Docker Engine is really an extension of the
Linux Containers (LXC in short) capabilities.
It provides a high-level API that provides a lightweight
virtualization solution to run processes in isolation.
It's written in Go (therefore I love it) and also utilizes cgroups and the Linux kernel itself.
Since it's based on LXC it does not include a separate Operating System (OS)
Here's a single Linux OS running several Docker containers - APP 1, APP2, APP3
Here's a single Linux OS running several VMs including - APP 1, APP2, APP3
Docker containers enable:
# Dockerfile
# Read more about Dockerfile syntax
# at https://docs.docker.com/engine/reference/builder/
FROM docker/whalesay:latest
RUN apt -y update && apt install -y fortunes
CMD /usr/games/fortune -a | cowsay
docker build -t docker-whale .
1. Create a Dockerfile that describes what your container wants to have. File syntax:
3. Run a Docker container using the prebuilt Docker image
docker run docker-whale
2. Build a Docker image by using the Dockerfile
Now a more "complex" container that communicates with another container.
Container 1: Sinatra Application
Container 2: Postgres DB