Installation & Setup
Let's get Docker installed on your system and run our first container!
Installing Docker
Windows
-
Download Docker Desktop from docker.com/products/docker-desktop
-
System Requirements:
- Windows 10/11 64-bit: Pro, Enterprise, or Education
- WSL 2 backend (recommended)
- 4GB RAM minimum
Note: Docker Desktop automatically sets up WSL2 during installation if it is not already enabled.
-
Installation Steps:
# After installation, verify in PowerShell docker --version docker run hello-world
macOS
-
Download Docker Desktop for Mac (Intel or Apple Silicon)
-
System Requirements:
- macOS 11 or newer
- 4GB RAM minimum
-
Installation:
- Drag Docker to Applications
- Open Docker Desktop
- Wait for it to start
Linux (Ubuntu/Debian)
# Update package index
sudo apt-get update
# Install prerequisites
sudo apt-get install ca-certificates curl gnupg
# Add Docker's official GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository
echo \
"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
# Install Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Run without sudo (optional)
sudo usermod -aG docker $USER
# Note: You must log out and log back in for the group change to take effect.
Verify Installation
Run these commands to verify Docker is installed correctly:
# Check Docker version
docker --version
# Output: Docker version 24.x.x, build xxxxx
# Check Docker Compose
docker compose version
# Output: Docker Compose version v2.x.x
# Run hello-world container
docker run hello-world
Your First Container
Let's run an Nginx web server:
# Pull and run nginx
docker run -d -p 8080:80 --name my-nginx nginx
# Visit http://localhost:8080 in your browser!
# Check logs
docker logs my-nginx
What Just Happened?
| Flag | Meaning |
|---|---|
-d | Run in detached mode (background) |
-p 8080:80 | Map port 8080 on host to port 80 in container |
--name my-nginx | Give the container a name |
nginx | The image to use |
Essential Docker Commands
# List running containers
docker ps
# List all containers (including stopped)
docker ps -a
# Stop a container
docker stop my-nginx
# Start a container
docker start my-nginx
# Remove a container
docker rm my-nginx
# List downloaded images
docker images
# Remove an image
docker rmi nginx
Docker Desktop Dashboard
Docker Desktop provides a GUI for:
- Viewing running containers
- Checking logs
- Managing images
- Resource usage monitoring
Important Technical Note
On Linux, Docker runs directly on the host kernel. On Windows and macOS, Docker Desktop runs containers inside a lightweight Linux VM (or WSL2). This ensures consistent behavior across all platforms.
References
-
Docker Desktop Installation
docs.docker.com/desktop -
Install Docker Engine on Linux
docs.docker.com/engine/install -
Docker CLI Reference
docs.docker.com/engine/reference/commandline/docker
Next Steps
Now that Docker is installed, let's dive deeper into Images and Containers in the next chapter! 🐳