Skip to content

Instantly share code, notes, and snippets.

@jgusta
Last active June 26, 2025 23:03
Show Gist options
  • Save jgusta/06e52e47399f91eae5e75e3f196b75a0 to your computer and use it in GitHub Desktop.
Save jgusta/06e52e47399f91eae5e75e3f196b75a0 to your computer and use it in GitHub Desktop.

Install Docker Engine CE and CLI - June 2025

  • Instructions on installing a non-desktop version of docker is inconvenient to find in the official documentation.
  • I've collected the official steps for major platforms here for reference.

Ubuntu

Prerequisite: supported firewalls

  • only supports iptables-nft and iptables-legacy

Prerequisite: uninstall old dockers

for pkg in docker.io docker-doc docker-compose docker-compose-v2 \
  podman-docker containerd runc; do sudo apt-get remove $pkg; done

Add Docker's official GPG key:

sudo apt-get update
sudo apt-get install ca-certificates curl
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:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

install the packages

sudo apt-get install docker-ce docker-ce-cli \
  containerd.io docker-buildx-plugin docker-compose-plugin

Debian

Prerequisite: supported firewalls

  • only supports iptables-nft and iptables-legacy

Prerequisite: uninstall old dockers

for pkg in docker.io docker-doc docker-compose \
  docker-compose-v2 podman-docker containerd runc; \
  do sudo apt-get remove $pkg; done

Add Docker's official GPG key:

sudo apt-get update
sudo apt-get install ca-certificates curl
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 the repository to Apt sources:

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
sudo apt-get update

install the packages

sudo apt-get install docker-ce docker-ce-cli \
  containerd.io docker-buildx-plugin docker-compose-plugin

CentOS

Prerequisite: uninstall old dockers

sudo dnf remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

install dnf-plugins-core

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

install docker

sudo dnf install docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

run docker now and at startup

sudo systemctl enable --now docker
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment