Creare docker-compose.yml

Docker Compose permette di definire e gestire applicazioni multi-container con un singolo file YAML.

Struttura Base

version: ‘3.8’

services:

web:

image: nginx:latest

ports:

– ‘8080:80’

volumes:

– ./html:/usr/share/nginx/html

restart: unless-stopped

db:

image: mariadb:latest

environment:

MYSQL_ROOT_PASSWORD: segreta

MYSQL_DATABASE: mio_db

volumes:

– db_data:/var/lib/mysql

volumes:

db_data:

Comandi Docker Compose

docker compose up -d # Avvia in background

docker compose down # Ferma e rimuovi

docker compose ps # Stato servizi

docker compose logs -f # Log in tempo reale

docker compose pull # Aggiorna immagini

docker compose restart

docker compose exec web bash # Shell nel servizio

Esempio Stack Web Completo

version: ‘3.8’

services:

nginx:

image: nginx:alpine

ports: [’80:80′, ‘443:443’]

volumes:

– ./nginx.conf:/etc/nginx/nginx.conf

– ./certs:/etc/ssl/certs

depends_on: [app]

app:

build: .

environment:

– DATABASE_URL=mysql://user:pass@db/mydb

depends_on: [db]

db:

image: mariadb:10.11

environment:

MYSQL_DATABASE: mydb

MYSQL_USER: user

MYSQL_PASSWORD: pass

MYSQL_ROOT_PASSWORD: rootpass

volumes: [‘db_data:/var/lib/mysql’]

volumes:

db_data: