Installing Docker on Linux

Quick setup instructions for Docker on Linux environments

This page provides quick install instructions for manually setting up Docker on different flavors of Linux. This is normally handled automatically by the Gateway installer script.

Amazon Linux 2

# Engine from amazon-linux-extras
sudo yum update -y
sudo amazon-linux-extras install -y docker
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker

# Install Compose v2 plugin so `docker compose` works
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64" \
  -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

# Verify
docker --version
docker compose version

# Start the service and set to run on reboot
sudo service docker start
sudo chkconfig docker on

Amazon Linux 2023

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo sed -i 's|\$releasever|9|g' /etc/yum.repos.d/docker-ce.repo

sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker

sudo service docker start
sudo chkconfig docker on

# Verify
docker --version
docker compose version

Debian

It is typically recommended to remove any existing Docker or docker-compose that is installed on the Debian machine, and install the official Docker packages (instead of the Debian packages).

The commands to delete the existing Docker version is below:

sudo systemctl stop docker docker.socket containerd 2>/dev/null
sudo apt remove --purge -y docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin docker.io podman-docker runc
sudo apt remove docker-compose
sudo apt autoremove --purge -y
sudo rm -rf /var/lib/docker /var/lib/containerd /etc/docker
sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg

After removing Docker, it would be a good idea to reboot the device.

sudo reboot

Now, install the official Docker packages using the commands below.

# 1. Install prerequisites
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release

# 2. Add Docker’s GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 3. Add Docker’s official repo
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. Install Docker CE, CLI, Containerd, and Compose plugin
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin

# 5. Enable and start Docker
sudo systemctl enable --now docker

# 6. Verify install
docker --version
docker compose version

# to run docker without sudo
sudo usermod -aG docker $USER
newgrp docker

Ubuntu

# Install prerequisites
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release

# Add Docker’s GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add Docker’s official Ubuntu repo
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install Docker CE, CLI, Containerd, and Compose plugin
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin

# Enable and start Docker
sudo systemctl enable --now docker

# Allow running Docker without sudo
sudo usermod -aG docker $USER
newgrp docker

# Verify install
docker --version
docker compose version

Last updated

Was this helpful?