99 lines
3.0 KiB
Markdown
99 lines
3.0 KiB
Markdown
# 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í
|
|
```bash
|
|
# 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.com` můžete ponechat, směřuje na `127.0.0.1` tedy na váš lokální počítač. Pokud chcete použít
|
|
> jinou doménu, nezapomeňte ji přidat do vašeho `/etc/hosts` souboru 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
|
|
```bash
|
|
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain traefik/certs/rootCA.pem
|
|
```
|
|
|
|
#### Linux (Ubuntu/Debian)
|
|
```bash
|
|
sudo cp traefik/certs/rootCA.pem /usr/local/share/ca-certificates/linuxak-dev-ca.crt
|
|
sudo update-ca-certificates
|
|
```
|
|
|
|
#### Linux (CentOS/RHEL/Fedora)
|
|
```bash
|
|
sudo cp traefik/certs/rootCA.pem /etc/pki/ca-trust/source/anchors/linuxak-dev-ca.crt
|
|
sudo update-ca-trust
|
|
```
|
|
|
|
#### Windows (PowerShell jako Admin)
|
|
```bash
|
|
Import-Certificate -FilePath "traefik/certs/rootCA.pem" -CertStoreLocation Cert:\LocalMachine\Root
|
|
```
|
|
|
|
### 3. Spuštění
|
|
```bash
|
|
./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ě.
|
|
|
|
```yaml
|
|
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>
|
|
``` |