This are my notes about
docker and how to run it for my projects.
I’m sharing them here for convenience of the teams that I’m working with.
Note: This is a live document, expect changes any time.
Docker can be seen as a light-weight virtual machine runner. It’s not a true virtual machine, but it is enough to provide virtualized environments for servers and clouds. In that context, being light-weight is an advantage, as it consumes less memory than a virtual machine, and the integration with the host environment is more powerful than that of a virtual machine.
Docker comes with Linux. Eventually install it using
sudo apt-get intall docker.
Docker does not run out-of-the-box on Mac or Windows, but it can be run using third-party tools like
Docker is a command with subcommands to run, similar to
To see what docker can do, simply run
Getting, installing and running images
To see what images are available on your system, use
In order to see what images are available for download on a specific term, use
An image can be downloaded and installed using the
docker pull command.
For example, to download and install a ubuntu container, use
docker pull ubuntu.
To run the container, use
docker run ubuntu.
That generated a new LXC container, created a new file system, mounted a read/write layer, allocated network interface etc. whatever is required for running a container.
You probably want to run it with a specific command in the container,
docker run -it ubuntu bash.
Definition: An image in execution is called container.
To see which docker images available on the system, use
To see the docker containers, use
Running a command inside a docker container
Find out the docker container using
Then run the command like this
docker exec container-id command.
For example, if your container is
postgres:latest with id
343147e64921 and you want to run
echo hello world in it, run
docker exec 343147e64921 echo hello world.
The file system per default is in memory (like ramfs).
In order to persist files, use the
docker commit command.
To view the (commited) history, use
Log / stdout
To view the stdout of a container, use