# Install Docker Engine on Debian [TOC] ## Uninstall old versions ```shell for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; \ do sudo apt remove $pkg; done ``` ## Install using the apt repository ### Add Docker's official GPG key ```shell sudo apt update && sudo apt install -y \ ca-certificates \ curl ``` ```shell sudo install -m 0755 -d /etc/apt/keyrings \ && sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc \ && sudo chmod a+r /etc/apt/keyrings/docker.asc ``` ### Add the repository to Apt sources ```shell echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` ## Install the Docker packages ```shell sudo groupadd \ -g `id -g $USER` \ -o \ docker ``` ### Install the latest version ```shell sudo apt update && sudo apt install -y \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin ``` ## Manage Docker as a non-root user ### Add user to the `docker` group ```shell sudo usermod -aG docker $USER ``` ### Activate the changes to groups ```shell newgrp docker ``` :::success Or just log out and log back in. ::: ### Verify that docker can be runned without sudo ```shell docker version ``` ``` Client: Docker Engine - Community Version: 28.0.1 API version: 1.48 Go version: go1.23.6 Git commit: 068a01e Built: Wed Feb 26 10:40:57 2025 OS/Arch: linux/arm64 Context: default Server: Docker Engine - Community Engine: Version: 28.0.1 API version: 1.48 (minimum version 1.24) Go version: go1.23.6 Git commit: bbd0a17 Built: Wed Feb 26 10:40:57 2025 OS/Arch: linux/arm64 Experimental: false containerd: Version: 1.7.25 GitCommit: bcc810d6b9066471b0b6fa75f557a15a1cbf31bb runc: Version: 1.2.4 GitCommit: v1.2.4-0-g6c52b3f docker-init: Version: 0.19.0 GitCommit: de40ad0 ``` ## Configure Docker to start on boot with systemd :::info On Debian, the Docker daemon starts on boot by default. :::