Docker Installation & Setup
Overview
Learn how to install Docker on your operating system and verify that everything is working correctly. This guide covers Windows, macOS, and Linux installation methods.
Installation on macOS
🍎 macOS Installation Steps
brew install --cask dockerdocker --versiondocker run hello-worldOption 1: Docker Desktop (Recommended)
Docker Desktop includes the Docker daemon, CLI, and all necessary tools.
# Install via Homebrew
brew install --cask docker
# Verify installation
docker --version
docker run hello-worldAlternatively, you can download the installer from Docker's official website.
Option 2: Colima (Lightweight Alternative)
Colima is a lightweight container runtime for macOS that uses less memory.
# Install Colima
brew install colima
# Start Colima
colima start
# Verify
docker psInstallation on Windows
System Requirements
- Windows 10/11 Pro, Enterprise, or Home (with WSL 2)
- Virtualization enabled in BIOS
- At least 4GB RAM
Method 1: Docker Desktop with WSL 2
# Install Docker Desktop
winget install Docker.DockerDesktop
# Or download from https://www.docker.com/products/docker-desktop
# Verify installation
docker --version
docker run hello-worldMethod 2: Chocolatey
# Install via Chocolatey
choco install docker-desktop
# Verify
docker --versionTroubleshooting WSL 2
If you encounter issues, ensure WSL 2 is enabled:
# Enable WSL 2
wsl --install
# Set WSL 2 as default
wsl --set-default-version 2
# List WSL distributions
wsl --list --verboseInstallation on Linux
Ubuntu/Debian
# Update package manager
sudo apt-get update
# Install Docker
sudo apt-get install -y docker.io
# Verify
docker --version
# Enable Docker service
sudo systemctl start docker
sudo systemctl enable docker
# Verify by running a test container
docker run hello-worldFedora/CentOS/RHEL
# Install Docker
sudo dnf install docker
# Start Docker service
sudo systemctl start docker
sudo systemctl enable docker
# Verify
docker --version
docker run hello-worldAdd User to Docker Group (All Linux Distributions)
To avoid using
sudo# Create docker group
sudo groupadd docker
# Add your user to the docker group
sudo usermod -aG docker $USER
# Activate the group changes
newgrp docker
# Verify (no sudo needed)
docker run hello-world⚠️ Security Note: Users in the docker group have equivalent privileges to root. Use with caution.
Post-Installation Steps
1. Verify Installation
Run the hello-world container to confirm Docker is working:
docker run hello-worldExpected output indicates successful installation.
2. Check Docker Info
# Display system-wide Docker information
docker info
# Display Docker version details
docker version3. Configure Docker Daemon (Optional)
Edit the Docker daemon configuration file:
macOS/Linux:
# Edit Docker daemon config
sudo nano /etc/docker/daemon.jsonWindows (Docker Desktop):
- Open Docker Desktop
- Settings → Docker Engine
- Edit the JSON configuration
4. Enable Docker Service on Boot
Ubuntu/Debian:
sudo systemctl enable docker
sudo systemctl enable containerdmacOS (Docker Desktop):
- Automatically starts on login by default
Windows (Docker Desktop):
- Automatically launches on startup by default
Uninstalling Docker
macOS
# If installed via Homebrew
brew uninstall docker
# Or use Docker Desktop uninstaller
# Applications → Docker → Drag to TrashWindows
# If installed via Chocolatey
choco uninstall docker-desktop
# Or
winget uninstall Docker.DockerDesktop
# Or manually: Control Panel → Programs → Uninstall a program → Docker DesktopLinux
Ubuntu/Debian:
sudo apt-get remove docker docker-io containerd runc
sudo apt-get remove docker-ce docker-ce-cli containerd.ioFedora/CentOS:
sudo dnf remove docker containerd runcTroubleshooting
Docker Daemon Not Running
# Check Docker daemon status
systemctl status docker
# Start Docker daemon
sudo systemctl start docker
# Or on macOS, restart Docker Desktop from menu barPermission Denied Errors
# Add user to docker group
sudo usermod -aG docker $USER
# Apply group changes
newgrp docker
# Or use sudo
sudo docker psPort Already in Use
# List all containers (including stopped ones)
docker ps -a
# Stop conflicting container
docker stop <container-id>
# Remove container if needed
docker rm <container-id>Disk Space Issues
# Show Docker disk usage
docker system df
# Remove unused images
docker image prune -a
# Remove unused containers
docker container prune
# Remove unused volumes
docker volume prune
# Clean up everything
docker system prune -aContainer Runtime Errors
# Check logs
docker logs <container-id>
# Inspect container details
docker inspect <container-id>
# Run in interactive mode for debugging
docker run -it <image-name> /bin/bashQuick Reference
| Command | Purpose |
|---|---|
|
text | Check Docker version |
|
text | Test installation |
|
text | Display system info |
|
text | List running containers |
|
text | List available images |
|
text | Show disk usage |
|
text | Clean up unused resources |
| Command | Purpose |
|---|---|
text | Check Docker version |
text | Test installation |
text | Display system info |
text | List running containers |
text | List available images |
text | Show disk usage |
text | Clean up unused resources |
Next Steps
- Learn about Docker Images and Containers
- Write your first Dockerfile
- Explore Docker Compose