Quick Setup - Docker Installation

Install Docker on Ubuntu and configure registry mirrors.

Install Docker on Ubuntu

1. Update the server

sudo apt-get update
sudo apt-get upgrade

2. Install dependencies and add the official repository

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

# Add Docker official GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Add Docker official repository
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

3. Reboot the server to update the kernel

sudo reboot

4. Install Docker

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

5. Verify installation

sudo docker run hello-world
sudo docker rm $(sudo docker ps -a -q --filter ancestor=hello-world)
sudo docker rmi hello-world

6. Configure a registry mirror

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://docker.m.daocloud.io"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Common commands

# Start
docker compose up -d --build
# Restart
docker compose restart
# Stop
docker compose down
# View logs
docker compose logs -f
# List running containers
docker ps
# List all containers
docker ps -a
# Remove a container
docker rm <container_id>
# Remove all containers
docker rm $(docker ps -a -q)
# Remove an image
docker rmi <image_id>
# Remove all images
docker rmi $(docker images -q)
# Remove all containers and images
docker system prune -a

7. Common issues

Cannot access the official repository

You can try switching to the Aliyun mirror:

sudo sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list

Slow download speed

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://dockerproxy.com",
    "https://mirror.ccs.tencentyun.com",
    "https://hub-mirror.c.163.com"
  ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Then restart:

sudo systemctl daemon-reexec
sudo systemctl restart docker