Install Docker
bash
# Remove old versions
sudo apt remove docker docker-engine docker.io containerd runc
# Install dependencies
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
# Add Docker's 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 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
# Install Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Add user to docker group
sudo usermod -aG docker $USER
newgrp docker
Essential Commands
bash
# Check Docker version
docker --version
docker compose version
# Run hello world
docker run hello-world
# List containers
docker ps -a
# List images
docker images
# Remove unused containers
docker container prune
# Remove unused images
docker image prune
# System cleanup
docker system prune -a
Docker Compose Examples
yaml
# docker-compose.yml
version: "3.8"
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: postgres:15
environment:
POSTGRES_DB: myapp
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Useful Aliases
Add to ~/.bashrc
:
bash
alias d="docker"
alias dc="docker compose"
alias dps="docker ps"
alias dpa="docker ps -a"
alias di="docker images"
alias dr="docker run"
alias de="docker exec -it"
alias dlog="docker logs"
alias dstop="docker stop"
alias dstart="docker start"
alias drm="docker rm"
alias drmi="docker rmi"
Quick Start
bash
# Start services
docker compose up -d
# View logs
docker compose logs -f
# Stop services
docker compose down
# Rebuild and start
docker compose up --build -d
Docker ready in minutes! 🐳