Minimalistyczny Serwer Nginx
Uruchamia standardowy kontener Nginx z domyślną stroną powitalną. Idealny do testowania, czy porty i Docker działają poprawnie.
Nginx Alpine
Port 8080
2 min setup
docker-compose.yml
version: '3.8'
services:
default_nginx:
image: nginx:alpine
container_name: default_nginx_test
restart: unless-stopped
ports:
- "8080:80"
Polecenia uruchomienia
# Uruchom kontener
docker compose up -d
# Sprawdź logi
docker logs default_nginx_test
# Zatrzymaj kontener
docker compose down
PostgreSQL z PgAdmin
Pełny stack PostgreSQL z interfejsem webowym PgAdmin. Idealne rozwiązanie do developmentu i zarządzania bazami danych.
PostgreSQL 15
Port 5432, 5050
5 min setup
docker-compose.yml
version: '3.8'
services:
postgres:
image: postgres:15-alpine
container_name: postgres_db
restart: unless-stopped
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: secure_password
POSTGRES_DB: myapp
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
pgadmin:
image: dpage/pgadmin4
container_name: pgadmin_ui
restart: unless-stopped
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: admin_password
ports:
- "5050:80"
depends_on:
- postgres
volumes:
postgres_data:
Dostęp: PgAdmin dostępny pod http://localhost:5050
Prometheus + Grafana
Kompletny stack monitoringu z Prometheus i Grafana. Zbieraj metryki i wizualizuj dane w czasie rzeczywistym.
Prometheus + Grafana
Port 9090, 3000
10 min setup
docker-compose.yml
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- grafana_data:/var/lib/grafana
depends_on:
- prometheus
volumes:
prometheus_data:
grafana_data:
Uwaga: Wymaga pliku prometheus.yml w tym samym katalogu
Redis Cache
Szybka baza danych w pamięci Redis. Idealna do cachowania, kolejek zadań i sesji użytkowników.
Redis Alpine
Port 6379
1 min setup
docker-compose.yml
version: '3.8'
services:
redis:
image: redis:alpine
container_name: redis_cache
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: redis-server --appendonly yes
volumes:
redis_data:
Test połączenia
# Połącz się z Redis CLI
docker exec -it redis_cache redis-cli
# Ustaw wartość
SET mykey "Hello Redis"
# Odczytaj wartość
GET mykey
PHP + MySQL Dev Environment
Kompletne środowisko deweloperskie PHP z Apache, MySQL i phpMyAdmin. Gotowe do budowania aplikacji webowych.
PHP 8.2 + MySQL 8
Port 80, 3306, 8081
7 min setup
docker-compose.yml
version: '3.8'
services:
php-apache:
image: php:8.2-apache
container_name: php_web
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./www:/var/www/html
mysql:
image: mysql:8
container_name: mysql_db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root_pass
MYSQL_DATABASE: webapp
MYSQL_USER: dev_user
MYSQL_PASSWORD: dev_pass
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: unless-stopped
environment:
PMA_HOST: mysql
PMA_PORT: 3306
ports:
- "8081:80"
depends_on:
- mysql
volumes:
mysql_data:
Gotowe! Umieść pliki PHP w folderze ./www
Traefik Reverse Proxy
Nowoczesny reverse proxy z automatycznym SSL. Idealne rozwiązanie do zarządzania wieloma serwisami z jednego miejsca.
Traefik v2
Port 80, 443, 8080
15 min setup
docker-compose.yml
version: '3.8'
services:
traefik:
image: traefik:v2.10
container_name: traefik
restart: unless-stopped
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik:/etc/traefik
whoami:
image: traefik/whoami
container_name: whoami
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
- "traefik.http.routers.whoami.entrypoints=web"
Dashboard: Dostępny pod http://localhost:8080