🐳
Container Platform

Docker

Container platform for building, shipping, and running applications

🐧 Linux🍎 Mac🪟 Windows📋 Quick reference →
Reviewed: Tested on: Kubernetes 1.29 · Terraform 1.8 · Ubuntu 22.04

What is this?

Docker packages an app and everything it needs into a container that runs the same everywhere.

📁

Config files for Docker

Where to create or edit the main configuration — paths below match the setup steps.

  • Dockerfile

    Location: Project root (or build context directory)

    Image build instructions — FROM, COPY, RUN, CMD

  • /etc/docker/daemon.json

    Location: Docker host (Linux)

    Registry mirrors, storage driver, log options

📥

Step 01

Install Docker

(01)Install Docker Engine

Install the Docker container runtime on your system.

Linux
1# Ubuntu / Debian
2sudo apt-get update
3sudo apt-get install -y ca-certificates curl gnupg
4sudo install -m 0755 -d /etc/apt/keyrings
5curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
6echo "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
7sudo apt-get update
8sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
9
10# RHEL / CentOS / Fedora
11sudo dnf -y install dnf-plugins-core
12sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
13sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

(02)Start Docker Service

Linux
1sudo systemctl enable docker
2sudo systemctl start docker
3sudo usermod -aG docker $USER
4# Log out and back in for group changes to take effect

Step 02

Verify Installation

(01)Check Docker Version

Linux
1docker --version
2docker compose version

(02)Run Hello World Container

Linux
1docker run hello-world

Step 03

Manage Docker

(01)Container Operations

Linux
1# List running containers
2docker ps
3
4# List all containers
5docker ps -a
6
7# Start / Stop / Remove
8docker start <container>
9docker stop <container>
10docker rm <container>

(02)Image Operations

Linux
1# List images
2docker images
3
4# Pull / Build / Remove
5docker pull nginx:latest
6docker build -t myapp:1.0 .
7docker rmi <image>

(03)Docker Compose

Linux
1# Start services
2docker compose up -d
3
4# View logs
5docker compose logs -f
6
7# Stop and remove
8docker compose down

(04)System Cleanup

Linux
1# Remove unused containers, networks, images
2docker system prune -a
3
4# Remove unused volumes (careful!)
5docker volume prune
🔧

Step 04

Common Problems

#1Cannot connect to the Docker daemon

Linux
1# Add user to docker group
2sudo usermod -aG docker $USER
3# Log out and back in, then:
4sudo systemctl start docker
5docker ps

#2Port already in use

Linux
1# Find what's using the port
2sudo lsof -i :8080
3# Or use a different host port
4docker run -p 8081:80 nginx
🗑️

Step 05

Uninstall Docker

(01)Remove Docker

Linux
1# Ubuntu / Debian
2sudo apt-get purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3sudo rm -rf /var/lib/docker /var/lib/containerd

📋Config templates

16 YAML templates for Docker. Copy and deploy after setup.

16 ready-to-copy templates. Expand one, copy the YAML, then run the deploy commands.

docker-compose.yaml

PostgreSQL database + Flask app with env file and volume persistence

yaml
1version: "3.9"
2
3services:
4 db:
5 image: postgres:15-alpine
6 environment:
7 POSTGRES_DB: dukaan_db
8 POSTGRES_USER: dukaan
9 POSTGRES_PASSWORD: dukaan123
10 ports:
11 - "5432:5432"
12 volumes:
13 - pgdata:/var/lib/postgresql/data
14
15 app:
16 build: .
17 ports:
18 - "5000:5000"
19 env_file:
20 - .env
21 depends_on:
22 - db
23
24volumes:
25 pgdata:

Dockerfile

Flask application container image

dockerfile
1FROM python:3.12-slim
2WORKDIR /app
3COPY requirements.txt .
4RUN pip install --no-cache-dir -r requirements.txt
5COPY . .
6EXPOSE 5000
7CMD ["python", "app.py"]
📄

Step 01

Run with Docker Compose

(01)Build and start services

Linux
1cd your-project/
2docker compose up -d --build
3docker compose ps
4docker compose logs -f app

(02)Stop and clean up

Linux
1docker compose down
2docker compose down -v # remove volumes