Photo by PJH on Unsplash

On this page

Docker Toolbox is outdated and I won’t describe it in this article, but it used to be the only option for Windows 7/8 users in the past. It includes Docker Client, Docker Compose, Docker Kitematic which is a graphical UI to manage containers and images and Docker Machine that will spin up a boot2docker image inside of VirtualBox. These are Linux containers running with a Linux kernel inside the VM.

Docker on Windows

Docker Desktop provides image and container tools. You need either Windows 10 Pro+, Mac or you can install Docker Desktop on Windows Home using the WSL 2 backend. It uses Hyper-V/Hyperkit to run VMs. Works on Windows, Max, Linux (via Docker Engine). Not meant for production, only for development. You get Docker Client, Docker Compose and Docker Kitematic optionally.

Windows Server Containers run Windows binaries on the same host OS, similar to how Linux containers on a Linux OS do not need a VM.

Docker on Ubuntu 20.04

First you have to add the repository once and verify the fingerprint:

Terminal window
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Next, you install the latest docker engine:

Terminal window
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
docker run hello-world

You might get the following error when running docker run hello-world:

Terminal window
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

Do the following to fix it, so that you can use the docker command without sudo:

Terminal window
sudo groupadd docker
sudo usermod -aG docker ${USER}

Now log out and back in and enter docker run hello-world. If the error still occurs do this:

sudo systemctl restart docker
sudo chmod 666 /var/run/docker.sock

Search articles

Type a word to search published articles.

Open the search page