MGM kontejner
MGM (Management) je servisní kontejner, který na pozadí stacku zajišťuje SSH přístup a webový terminál v administraci. Běží na Alpine Linuxu. Jeho nasazení a životní cyklus plně řídí Roští — v uživatelském docker-compose.yml se neuvádí.
Kde mgm žije
Od přechodu na systémový compose soubor je mgm součástí samostatného compose souboru v /srv/system/docker-compose.yml, který spravuje Roští. Uživatelský compose v /srv/stack/docker-compose.yml zůstává jen vám a vašim službám. Systémový adresář /srv/system je z mgm kontejneru viditelný přes bind mount, takže si jeho obsah můžete prohlédnout — měnit ho je ale třeba přes administraci v záložce System.
Zapnutí a vypnutí
V detailu stacku je záložka System, kde se dá mgm zapínat a vypínat:
- mgm — SSH přístup pro uživatele
roota webový terminál. Když mgm vypnete, ztratíte SSH i webový terminál spravovaný Roštím. Pokud SSH potřebujete, musíte si ho nakonfigurovat ve vlastním kontejneru.
Výchozí stav je, že je mgm zapnuté. Po každé změně přepínače Roští vygeneruje nový TTYD token a systémový compose se znovu nasadí.
Co mgm obsahuje
- Image:
harbor.rosti.cz/rosti-public/mgm:latest - Base: Alpine Linux 3.22
- Webový terminál: ttyd (dostupný z administrace přes tlačítko Terminál)
- SSH: na portu přiděleném stackem (informace najdete v záložce Detail)
- Shell: fish (výchozí), volitelně bash nebo zsh
Základní nástroje v image:
- Shell: bash, fish, zsh
- Editory: vim, nano
- Síť: curl, wget
- Systém: htop, tmux
- Verzování: git
- Docker: docker-cli, docker-cli-compose
- Síťové nástroje: iproute2
Paměťová stopa je okolo 30 MB RAM.
Bezpečnost a omezení přístupu
Pokud nechcete, aby měl do vašeho stacku přístup nikdo mimo vaše vlastní kontejnery, přepněte v záložce System přepínač mgm do polohy off. Roští mgm kontejner okamžitě zastaví a odstraní — ztratíte tím ale i webový terminál a SSH zajištěné systémem. Stejným přepínačem ho kdykoli vrátíte zpět.
Vlastní nástroje v terminálu
Pokud v terminálu potřebujete specifické nástroje, máte tři možnosti:
- Pracovat přímo uvnitř vlastních kontejnerů přes
docker execz mgm terminálu — na disku máte přes bind mount/srv/stackvšechna vaše data. - Přidat vlastní „utility" kontejner s nástroji do uživatelského compose a připojovat se do něj přes
docker exec. - Nahradit systémový mgm vlastním — v záložce System vypněte přepínač mgm a do uživatelského
docker-compose.ymlpřidejte vlastní mgm službu (typicky postavenou nadharbor.rosti.cz/rosti-public/mgm:latests vlastnímDockerfile). Takovou službu si pak spravujete sami; webový terminál v administraci ale v tomto režimu nefunguje, dokud si ttyd nezveřejníte vlastními prostředky.
Příklad rozšířeného mgm imagu:
FROM harbor.rosti.cz/rosti-public/mgm:latest
RUN apk add --no-cache strace lsof tcpdump bind-tools jq yq
A odpovídající služba ve vašem docker-compose.yml (po vypnutí systémového mgm):
services:
mgm:
image: my-registry/rosti-mgm:latest
environment:
SET_SHELL: fish
volumes:
- /srv/stack:/srv/stack
- /root/.docker/:/root/.docker/
- /run/docker.sock:/run/docker.sock
- /etc/shadow:/etc/shadow
- /root/.ssh:/root/.ssh
- /etc/ssh:/etc/ssh
restart: always
network_mode: host
Pokud váš registry není veřejný, přidejte si k němu přístup v sekci Registry v administraci.