Projekty Docker: Gotowe Skrypty

Zbiór gotowych do użycia plików docker-compose.yml oraz poleceń Bash, które pomogą Ci szybko uruchomić usługi.

Serwery Web
Łatwy

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
Bazy Danych
Średni

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
Monitoring
Zaawansowany

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
Bazy Danych
Łatwy

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
Development
Średni

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
Serwery Web
Zaawansowany

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