# Install Docker and Docker Compose

## Install Docker Engine and Compose

Run these in a shell on your Ubuntu 24.04 box:

```
# 1) Prereqs and keyring directory
sudo apt update
sudo apt install -y ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings

# 2) Add Docker’s official GPG key
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

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

# 4) Update package index
sudo apt update

# 5) Install Docker Engine + CLI + containerd + Buildx + Compose plugin
sudo apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
```

## Enable and test Docker

```
# Start and enable Docker service
sudo systemctl enable --now docker

# Optional: run Docker without sudo by adding your user to docker group
sudo usermod -aG docker $USER
# Then log out and back in, or:
newgrp docker

# Verify Docker
docker version

# Verify the Compose plugin (note: space, not hyphen)
docker compose version
```

## Optional: legacy `docker-compose` binary

If you explicitly need the old standalone `docker-compose` binary (for older scripts/CI), you can add it alongside the plugin:

```
sudo curl -L \
  "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
  -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose version
```