113 lines
3.3 KiB
Markdown
113 lines
3.3 KiB
Markdown
# Local Docker Management
|
|
|
|
## Traefik
|
|
|
|
- Reverzní proxy
|
|
- Validní https pro lokální vývoj (wildcard certifikát s vlastním CA)
|
|
- Přizpůsobitelné nastavení nuceného přesměrování HTTP na HTTPS
|
|
- Připojení dalších (vlastních) služeb pomocí Traefik labels
|
|
- Dashboard pro monitorování a správu routování
|
|
|
|
## Portainer
|
|
|
|
- Webové rozhraní pro správu kontejnerů
|
|
|
|
## Požadavky
|
|
|
|
- Docker & Docker Compose
|
|
|
|
## Instalace
|
|
|
|
### 1. Konfigurace prostředí
|
|
```bash
|
|
# Zkopírujte soubor .env.example na .env
|
|
cp .env.example .env
|
|
```
|
|
|
|
V případě nutnosti upravte hodnoty dle svých nastavení
|
|
|
|
`DEV_URL` - doména používaná pro lokální vývoj
|
|
`EXTERNAL_NETWORK` - název externí sítě, kterou používáte pro své kontejnery
|
|
`FORCE_HTTPS_REDIRECT` - nastavení vynuceného přesměrování HTTP na HTTPS (true/false)
|
|
|
|
> **Poznámka:**
|
|
>
|
|
> Přednastavenou doménu `dev.linuxak.com` můžete ponechat. Je plně funkční a směřuje
|
|
> na IP adresu `127.0.0.1` tedy na váš lokální počítač.
|
|
|
|
### 2. Import CA do systému
|
|
|
|
Traefik používá pro doménu `dev.linuxak.com` 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:
|
|
|
|
`<VASE_URL>` - nahraďte skutečnou doménou své služby
|
|
`<VAS_PORT>` - nahraďte skutečným portem své služby
|
|
`<VASE_EXTERNI_SIT>` - nahraďte skutečným názvem své externí sítě
|
|
|
|
Příklad pro službu s náyvem `myapp`:
|
|
|
|
```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>
|
|
``` |