Docker lets you package applications into containers that run anywhere. Docker Compose manages multi‑container setups (e.g., WordPress + MySQL).
This guide walks you through installing both on Ubuntu 24.04.
What You'll Need
A VPS with Ubuntu 24.04, SSH access, and basic command line skills.
Step 1: Update System
sudo apt update
sudo apt upgrade -y
Step 2: Install Prerequisites
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
Step 3: Add Docker's Official Repository
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
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
sudo apt update
Step 4: Install Docker Engine
sudo apt install docker-ce -y
Verify it's running: sudo systemctl status docker
Test: sudo docker run hello-world
Step 5: Run Docker Without sudo
sudo usermod -aG docker $USER
Log out and back in.
Step 6: Install Docker Compose
DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)
sudo curl -L "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Verify: docker-compose --version
Step 7: Basic Docker Commands
Pull an image: docker pull nginx
Run a container: docker run -d -p 8080:80 nginx
List containers: docker ps
Stop: docker stop container_id
Step 8: Docker Compose Example – WordPress
Create docker-compose.yml:
version: '3.8'
services:
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: secret
WORDPRESS_DB_NAME: wpdb
volumes:
- wp_data:/var/www/html
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootsecret
MYSQL_DATABASE: wpdb
MYSQL_USER: wpuser
MYSQL_PASSWORD: secret
volumes:
- db_data:/var/lib/mysql
volumes:
wp_data:
db_data:
Run: docker-compose up -d
Visit http://your_server_ip:8080. You'll see WordPress installation screen.
Common Issues
Permission denied: Log out and back in after adding user to docker group.
Port already used: Change host port (e.g., 8081:80).
Next Steps
Now you can containerize your apps. Learn to write Dockerfiles and explore Docker Hub for pre‑built images.
Need a VPS to practice on? Check our recommended VPS providers.