Introduction to containers
Learning outcomes
After having completed this chapter you will be able to:
- Discriminate between an image and a container
- Run a docker container from dockerhub interactively
- Validate the available containers and their status
Material
General introduction:
Introduction to containers:
Exercises
If working on Windows
If you are working on Windows, you can either use WSL2 or the local terminal in MobaXterm. In principle, you can also use a native shell like PowerShell, but this might result into some issues with bind mounting directories.
Let’s create our first container from an existing image. We do this with the image ubuntu
, generating an environment with a minimal installation of ubuntu.
docker run -it ubuntu
This will give you an interactive shell into the created container (this interactivity was invoked by the options -i
and -t
) .
Exercise: Check out the operating system of the container by typing cat /etc/os-release
in the container’s shell. Are we really in an ubuntu environment?
Answer
Yes:
root@27f7d11608de:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
Where does the image come from?
If the image ubuntu
was not on your computer yet, docker
will search and try to get them from dockerhub, and download it.
Exercise: Run the command whoami
in the docker container. Who are you?
Answer
The command whoami
returns the current user. In the container whoami
will return root
. This means you are the root
user i.e. within the container you are admin and can basically change anything.
Check out the container panel at the Docker dashboard (the Docker gui) or open another host terminal and type:
docker container ls -a
Exercise: What is the container status?
Answer
In Docker dashboard you can see that the shell is running:
The output of docker container ls -a
is:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
27f7d11608de ubuntu "/bin/bash" 7 minutes ago Up 6 minutes great_moser
Also showing you that the STATUS
is Up
.
Now let’s install some software in our ubuntu
environment. We’ll install some simple software called figlet
. Type into the container shell:
apt-get update
apt-get install figlet
This will give some warnings
This installation will give some warnings. It’s safe to ignore them.
Now let’s try it out. Type into the container shell:
figlet 'SIB courses are great!'
Now you have installed and used software figlet
in an ubuntu
environment (almost) completely separated from your host computer. This already gives you an idea of the power of containerization.
Exit the shell by typing exit
. Check out the container panel of Docker dashboard or type:
docker container ls -a
Exercise: What is the container status?
Answer
docker container ls -a
gives:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
27f7d11608de ubuntu "/bin/bash" 15 minutes ago Exited (0) 8 seconds ago great_moser
Showing that the container has exited, meaning it’s not running.