Install Docker from Official Docker Repo
✅ STEP-BY-STEP TO INSTALL DOCKER & DOCKER COMPOSE (V2)
# 1. Remove any old Docker versions
sudo apt remove docker docker.io containerd runc
# 2. Set up Docker's official GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 3. Add the Docker APT repository (for Ubuntu 22.04 "jammy")
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu jammy stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 4. Update APT
sudo apt update
# 5. Install Docker Engine and CLI (this includes docker-compose v2)
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-c
ompose-plugin -y
--------------------
6. Verify Docker is installed
docker --version
7. Verify Docker Compose V2 is working
docker compose version
8. Start Docker service (if not running)
sudo systemctl start docker
sudo systemctl enable docker
9. Test Docker Compose by running a sample container
mkdir ~/docker-test && cd ~/docker-test
echo -e "services:\n hello:\n image: hello-world" > docker-compose.yml
docker compose up
🚀 Next Steps: Run Laravel Project in Docker
✅ 1. Directory Structure (example)
/var/www/html/example.com/
├── docker-compose.yml
├── Dockerfile
├── .env
├── app/
├── public/
├── vendor/
├── ...
✅ 2. Basic docker-compose.yml
Example
version: '3.8'
services:
app:
build:
context: .
container_name: laravel_app
ports:
- "8000:8000"
volumes:
- .:/var/www/html
working_dir: /var/www/html
command: php artisan serve --host=0.0.0.0 --port=8000
depends_on:
- db
db:
image: mysql:5.7
container_name: mysql_db
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: laravel
MYSQL_USER: laravel
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: root
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
✅ 3. Basic Dockerfile
FROM php:8.1-cli
# Install system dependencies
RUN apt-get update && apt-get install -y \
git unzip curl libzip-dev zip && \
docker-php-ext-install zip pdo pdo_mysql
# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Set working directory
WORKDIR /var/www/html
✅ 4. Run the Laravel App
----------------------------------------
docker compose up --build
--------------------------------------------