Install Docker CE and Docker Compose on Debian 11/10

Posted on 143 views

How do I install Docker CE on Debian 11/10?, How can I install Docker Compose on Debian 11/10 Linux system?. In this guide, I’ll discuss a step by step installation of Docker and Docker Compose on Debian 11/10.

Docker is the most popular and widely used container runtime. It enables you to package and run your applications in isolated containers in a single server or cluster of Linux servers orchestrated by Kubernetes and similar tools.

Docker Editions

There are two editions of Docker available.

  • Community Edition (CE): ideal for individual developers and small teams looking to get started with Docker and experimenting with container-based apps.
  • Enterprise Edition (EE): Designed for enterprise development and IT teams who build, ship, and run business-critical applications in production at scale.

This guide will cover installation of Docker CE on Debian 10 / Debian 11 Linux. But let’s first look at common docker terminologies.

Docker Components / Terminologies

Below are commonly used terminologies in Docker ecosystem.

  • Docker daemon: This is also called Docker Engine, it is a background process which runs on the host system responsible for building and running of containers.
  • Docker Client: This is a command line tool used by the user to interact with the Docker daemon.
  • Docker Image: An image is an immutable file that’s essentially a snapshot of a container. A docker image has a file system and application dependencies required for running applications.
  • Docker container: This is a running instance of a docker image with an application and its dependencies. Each container has a unique process ID and isolated from other containers. The only thing containers share is the Kernel.
  • Docker registry: This is an application responsible for managing storage and delivery of Docker container images. It can be private or public.

Install Docker CE on Debian 11 (Bullseye) / Debian 10 (Buster)

Follow the steps covered in the next parts of this article to install and use Docker CE on Debian 11/10.

Step 1: Install Dependency packages

Start the installation by ensuring that all the packages used by docker as dependencies are installed.

sudo apt update
sudo apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common

Step 2: Add Docker’s official GPG key:

Import Docker GPG key used for signing Docker packages.

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg

Step 3: Add the Docker repository to Debian 10 / Debian 11

Add Docker repository which contain the latest stable releases of Docker CE.

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"

This command will add the line shown in /etc/apt/sources.list file.

Step 4: Install Docker & Docker Compose on Debian 11/10

Update the apt package index.

sudo apt update

To install Docker CE on Debian, run the command:

sudo apt install docker-ce docker-ce-cli containerd.io -y

Start and enable docker service:

sudo systemctl enable --now docker

This installation will add docker group to the system without any users. Add your user account to the group to run docker commands as non-privileged user.

sudo usermod -aG docker $USER
newgrp docker

Check docker and compose version.

$ docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:03:17 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:01:23 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Log out and log back in so that your group membership is re-evaluated.

exit

Install Docker Compose on Debian

Use the guide below to install latest Docker Compose on Debian 10 / Debian 11

Step 5: Test Docker installation

Run a test docker container:

$ docker run --rm -it  --name test alpine:latest /bin/sh
latest: Pulling from library/alpine
2408cc74d12b: Pull complete
Digest: sha256:686d8c9dfa6f3ccfc8230bc3178d23f84eeaf7e457f36f271ab1acc53015037c
Status: Downloaded newer image for alpine:latest

 / # cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.16.0
PRETTY_NAME="Alpine Linux v3.16"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

 / # exit

Step 6: Test Docker Compose installation.

Create a test Docker Compose file.

vim docker-compose.yml

Add below data to the file.

version: '3'  
services:
  web:
    image: nginx:latest
    ports:
     - "8080:80"
    links:
     - php
  php:
    image: php:7-fpm

Start service containers.

$ docker-compose up -d

Output:

docker-compose-start-containers

Show running Containers

$ docker-compose ps

Destroy containers

$ docker-compose stop
$ docker-compose rm
Going to remove vagrant_web_1, vagrant_php_1
Are you sure? [yN] y
Removing vagrant_web_1 … done
Removing vagrant_php_1 … done

You have successfully installed Docker on Debian 10 / Debian 11 Linux. Go through Official Docker documentation and Docker Compose documentation to learn more.

Setup Docker UI (Optional)

If you need a UI management console for Docker hosts and containers, checkout Portainer.

Monitoring Docker containers

Monitoring Docker containers can be achieved by using Monitoring tools such as Netdata, Prometheus and Grafana. Below guide should also be helpful Check Container container metrics with Ctop.

coffee

Gravatar Image
A systems engineer with excellent skills in systems administration, cloud computing, systems deployment, virtualization, containers, and a certified ethical hacker.