Docker-лаборатория
Что это
Домашний стенд на Linux-сервере, где я разворачиваю сервисы в Docker-контейнерах
и делаю их доступными из интернета без белого IP. Всё запускается через
docker compose, а трафик публикуется через Cloudflare Tunnel.
Стек
- ОС: Ubuntu Server (ВМ на Hyper-V)
- Контейнеризация: Docker + Docker Compose
- Веб: Nginx (отдаёт статику)
- Публикация: Cloudflare Tunnel (cloudflared)
- Мониторинг: Zabbix, SNMP
Как запускается
cd ~/my-website
docker compose up -d
docker compose ps
docker-compose.yml
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./site:/usr/share/nginx/html
restart: unless-stopped
cloudflared:
image: cloudflare/cloudflared:latest
restart: unless-stopped
command: tunnel --no-autoupdate run --token ${TUNNEL_TOKEN}
Проблемы, которые решил
- CGNAT у провайдера проброс портов невозможен, Cloudflare Tunnel обходит это.
- Белая полоса на мобильных решил через
body::beforeс запасом по краям. - Автоматизация данных контент сайта подгружается из
data/updates.json.
Что дальше
- Добавить CI/CD на GitHub Actions
- Развернуть Grafana + Prometheus
- Освоить Kubernetes (minikube) на этом же стенде