Docker
Installation
Ubuntu/Debian
# Update package manager
sudo apt update
# Install dependencies
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# Add Docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Add Docker repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-pluginCentOS/RHEL
# Install Docker repository
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Install Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-pluginQuick Install (All Linux)
curl -fsSL https://get.docker.com | bashPost-Installation Setup
# Add user to docker group (optional, to run docker without sudo)
sudo usermod -aG docker $USER
newgrp docker
# Enable and start Docker
sudo systemctl enable docker
sudo systemctl start docker
# Verify installation
docker --version
docker run hello-worldDocker Compose Installation
Standalone Binary
# Download latest release
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Make it executable
sudo chmod +x /usr/local/bin/docker-compose
# Verify installation
docker-compose --versionAs Docker Plugin (Recommended)
# Already included in recent docker-ce installation
docker compose versionService Management
# Start Docker
sudo systemctl start docker
# Stop Docker
sudo systemctl stop docker
# Restart Docker
sudo systemctl restart docker
# Enable Docker on boot
sudo systemctl enable docker
# Check Docker status
sudo systemctl status docker
# View Docker logs
sudo journalctl -u docker -fDocker Registry
# Login to Docker Hub
docker login
# Login to custom registry
docker login registry.example.com
# Logout
docker logout
# Logout from custom registry
docker logout registry.example.comUninstall Docker
Ubuntu/Debian
# Remove Docker packages
sudo apt remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Remove Docker images, containers, volumes
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerdCentOS/RHEL
# Remove Docker packages
sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Remove Docker images, containers, volumes
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerdConfiguration
Daemon Configuration
# Edit daemon config
sudo nano /etc/docker/daemon.jsonExample daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2",
"registry-mirrors": ["https://mirror.example.com"]
}Apply Configuration Changes
# Reload configuration
sudo systemctl daemon-reload
sudo systemctl restart dockerDocker Storage
# Check Docker storage location
docker info | grep -i "docker root"
# View disk usage
docker system df
# Cleanup unused images, containers, volumes
docker system prune -a
# Cleanup with volumes
docker system prune -a --volumes