1
0
Files
local-docker-mngt/README.md

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>
```