Free tools Windows power users keep installed
One-click scans. No signup required.
For a standard Debian host, install Docker Engine from Docker’s signed APT repository. The process is to check release and architecture support, remove conflicting packages without deleting stored Docker data, configure the repository, install the Engine and companion tools, then verify the daemon and run a test container.
Check that your Debian release and architecture are supported
Docker’s Debian installation page currently lists Debian 13 (Trixie, stable) and Debian 12 (Bookworm, oldstable). Supported architectures are x86_64/amd64, armhf/arm/v7, arm64, and ppc64le/ppc64el. Check Docker’s Debian installation instructions if you are using another release, architecture, or a Debian derivative.
As an Amazon Associate I earn from qualifying purchases.
To see your host’s release codename and package architecture, run:
Recommended Free Tools
. /etc/os-release
printf '%sn' "$VERSION_CODENAME"
dpkg --print-architecture
Docker notes that testing releases and derivatives such as Kali may require you to enter the codename of the corresponding Debian release explicitly when configuring the repository.
#1 Best Overall
Remove conflicting packages without erasing Docker data
Docker lists these packages as potential conflicts with its official packages: docker.io, docker-compose, docker-doc, docker-buildx, podman-docker, containerd, and runc. If any are installed, remove them before proceeding:
sudo apt remove docker.io docker-compose docker-doc docker-buildx podman-docker containerd runc
APT may report that some named packages are not installed; that is fine. Docker’s containerd.io package supplies containerd and runc for this installation. Removing packages does not automatically remove images, containers, volumes, or networks in /var/lib/docker/. Do not delete that directory unless you intend to erase Docker data.
Configure Docker’s signed APT repository
This setup uses the host’s Debian codename and package architecture so APT retrieves packages for the correct release and platform.
Rank #2
-
Refresh APT and install the tools needed to retrieve and verify the repository key:
sudo apt update sudo apt install ca-certificates curl -
Create APT’s keyring directory, download Docker’s Debian signing key, and make it readable:
sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc -
Add Docker’s repository using the system codename and architecture:
Rank #3
echo "Types: deb URIs: https://download.docker.com/linux/debian Suites: $(. /etc/os-release && echo "$VERSION_CODENAME") Components: stable Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/docker.asc" | sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null -
Refresh package metadata so APT can see Docker’s packages:
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsSpecial offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.sudo apt update
Install Docker Engine, CLI, Buildx, and Compose
Install the current versions available from the configured repository:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
This installs Docker Engine, its command-line interface, the container runtime package, and the Buildx and Compose CLI plugins. Repository versions vary by Debian release and architecture. If you need a pinned version, follow Docker’s Debian instructions to list available docker-ce versions, then install the matching docker-ce and docker-ce-cli version alongside containerd.io, docker-buildx-plugin, and docker-compose-plugin.
Rank #4
Verify that the daemon and a container work
-
Check the Docker service:
sudo systemctl status dockerIf it is not running, start it with:
sudo systemctl start docker -
Run Docker’s test container:
sudo docker run hello-worldDocker Docs explains that this command downloads a test image, runs it in a container, prints a confirmation message, and exits. The service starts automatically on Debian-based distributions.
Choose an installation method that fits your needs
| Method | Best suited to | Updates and control |
|---|---|---|
| Docker APT repository | Routine Debian host installations | Integrated with APT; install or upgrade by selecting repository packages. Version availability depends on release and architecture. |
Manual .deb packages |
Hosts that cannot use the APT repository | Requires obtaining the release- and architecture-specific packages again for upgrades. |
| Convenience script | Development and testing | Defaults to the latest stable packages, provides limited customization, and is not designed to upgrade an existing installation. |
Docker describes its convenience script as unsuitable for production use: it requires root or sudo, installs dependencies and recommendations without confirmation, and may result in unexpected major upgrades. You can preview its actions with --dry-run. For a managed installation, use the APT repository method.
Docker Desktop for Linux is a separate option; the steps here install Docker Engine directly on a Debian host.
Best Value
Understand firewall behavior before publishing container ports
Docker warns that published container ports can bypass firewall rules managed by ufw or firewalld. Account for this before exposing a service on an internet-facing host. Docker supports iptables-nft and iptables-legacy, but says firewall rules created with nft are unsupported on a system with Docker installed. For relevant filtering, Docker directs administrators to iptables or ip6tables rules, including the DOCKER-USER chain. See the firewall notes in Docker’s Debian installation guide.
Decide whether to use sudo or rootless mode
The Docker group exists after installation but initially contains no users. Adding a user to it allows Docker commands without sudo, but it is not a privilege boundary: Docker Docs states, “The docker group grants root-level privileges to the user.” If that level of access is not appropriate, keep using sudo or review Docker’s rootless mode instructions for a non-root daemon option.
Upgrade or uninstall Docker Engine
To upgrade, repeat the package installation procedure with the desired newer version. To uninstall, Docker’s documented procedure purges its packages and removes its repository and key files. That does not automatically delete stored images, containers, volumes, or custom configuration. Removing /var/lib/docker and /var/lib/containerd is a separate destructive cleanup step; only do so if you explicitly want to remove that data. Follow the upgrade and uninstall commands in the Docker Debian guide.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




