3.0 KiB
Local Docker Management - Traefik & Portainer
Docker stack s reverse proxy (Traefik) a webovým rozhraním pro správu kontejnerů (Portainer).
Požadavky
- Docker & Docker Compose
- Nastavené DNS záznamy nebo
/etc/hosts
Instalace
1. Konfigurace prostředí
# Přejmenujte soubor .env.example na .env
mv .env.example .env
# Upravte .env soubor dle svých nastavení
DEV_URL=dev.linuxak.com
EXTERNAL_NETWORK=traefiknet
Poznámka:
Doménu
dev.linuxak.commůžete ponechat, směřuje na127.0.0.1tedy na váš lokální počítač. Pokud chcete použít jinou doménu, nezapomeňte ji přidat do vašeho/etc/hostssouboru a vygenerovat novou sadu certifikátů pro tuto doménu.
2. Import CA do systému
Traefik používá vlastní certifikát pro HTTPS komunikaci. Pro správné fungování je potřeba importovat rootCA.pem do důvěryhodných certifikátů vašeho operačního systému.
MacOS
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain traefik/certs/rootCA.pem
Linux (Ubuntu/Debian)
sudo cp traefik/certs/rootCA.pem /usr/local/share/ca-certificates/linuxak-dev-ca.crt
sudo update-ca-certificates
Linux (CentOS/RHEL/Fedora)
sudo cp traefik/certs/rootCA.pem /etc/pki/ca-trust/source/anchors/linuxak-dev-ca.crt
sudo update-ca-trust
Windows (PowerShell jako Admin)
Import-Certificate -FilePath "traefik/certs/rootCA.pem" -CertStoreLocation Cert:\LocalMachine\Root
3. Spuštění
./run up # Spustit stack
./run restart # Restartovat stack
./run down # Zastavit stack
Přístup ke službám
| Služba | URL |
|---|---|
| Traefik Dashboard | https://traefik.dev.linuxak.com |
| Portainer | https://portainer.dev.linuxak.com |
Struktura
Stack/
├── docker-compose.yml # Definice služeb
├── run # Skript pro správu
├── .env # Konfigurace prostředí
├── traefik/ # Traefik konfigurace, certifikáty a logy
└── portainer/ # Portainer data
Persistence
Složka portainer je persistentním úložištěm pro službu Portainer a všechna data této služby zůstanou uložená i po vypnutí stacku, dokud je ručně nesmažete.
Připojení vaší služby do Traefiku
Do vašeho docker-compose.yml přidejte Traefik labels:
Hodnotu
<VASE_URL>nahraďte skutečnou doménou své služby.
Hodnotu<VAS_PORT>nahraďte skutečným portem své služby.
Hodnotu<VASE_EXTERNI_SIT>nahraďte skutečným náyvem své externí sítě.
labels:
- "traefik.enable=true"
- "traefik.http.routers.myapp.rule=Host(`myapp.<VASE_URL>`)"
- "traefik.http.routers.myapp.entrypoints=websecure"
- "traefik.http.routers.myapp.tls=true"
- "traefik.http.services.myapp.loadbalancer.server.port=<VAS_PORT>"
networks:
- <VASE_EXTERNI_SIT>