sudo apt install -y ca-certificates curl gnupg 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 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 __________________________ sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io ____________________________ sudo systemctl enable docker sudo systemctl start docker ________________________ sudo docker run hello-world ___________ docker compose version (If that works, you’re good!) ____________________ cd /path/to/your/project docker compose up -d ___________________ your-project/ │ ├── docker-compose.yml └── src/ └── index.php ← Your PHP files go here ___________________ Accessing Services PHP + Apache: http://localhost:8080 MySQL: port 3306, user user, password userpass, DB: mydb ____________________________ docker-compose.yml version: '3.8' services: web: image: php:8.2-apache container_name: php_apache ports: - "8080:80" volumes: - ./src:/var/www/html depends_on: - db db: image: mysql:8.0 container_name: mysql_db restart: always environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_DATABASE: mydb MYSQL_USER: user MYSQL_PASSWORD: userpass ports: - "3306:3306" volumes: - db_data:/var/lib/mysql volumes: db_data: