Docker container / umožnění či autostart ssh

Docker container / umožnění či autostart ssh
« kdy: 01. 11. 2024, 23:51:34 »
Netušíte prosím někdo, jak uvnitř běžícího kontejneru (debian/ubuntu) umožnit autostart ssh? Ssh spustím pomocí service ssh start, ale samozřejmě po restartu je to zase vypnutý a příkaz systemctrl enable "cokoli" v kontejneru není dostupný.

Celá aplikace se skládá ze 3 kontejnerů (sql, cache a hlavní aplikace) a k sestavení používám používám docker-compose.yml.

Ať googlím jak chci, (entrypoint, command... ty mi to pro "radost" pouštějí při startu stále dokola a kontejner se pořád restartuje :-)) nedokážu docílit něco jako "systemctrl enable sshd" aby to zůstalo perzistentní.

Děkuji!


SR

Re:Docker container / umožnění či autostart ssh
« Odpověď #1 kdy: Dnes v 04:57:17 »
Problém/vyhoda kontejnerů je že tam by default bezi Jen jeden proces. Takže co potřebuješ je aby ten jeden proces pustil další procesy

Asi nejjednodušší řešení je si do kontejnerů nainstalovat supervisord napsat si entrypoint kterej pustí ten supervisord a přes supervisord už si můžeš pustit kolik dalších věcí potřebuješ (třeba i to ssh) je to jednoduché elegantní...

Trochu nevýhoda je že ten supervisord sám žere asi 30mb RAM což je prd ale když chceš mít úsporné kontejnerů tak se bez něj jde obejít prostě ten ssh sever pustíš v entrypointu ale pustíš ho na pozadí abys pak mohl nahodit další službu. Není tak elegantní protože ten supervisord za tebe dělá i další práci (automaticky restart padnute servisi...)  což si jinak budeš muset v tom entrypointu nak pořešit sám (a nebo se na to vykašlat ono ssh zas tak často nepadne)

Re:Docker container / umožnění či autostart ssh
« Odpověď #2 kdy: Dnes v 06:14:06 »
Problém/vyhoda kontejnerů je že tam by default bezi Jen jeden proces. Takže co potřebuješ je aby ten jeden proces pustil další procesy

Asi nejjednodušší řešení je si do kontejnerů nainstalovat supervisord napsat si entrypoint kterej pustí ten supervisord a přes supervisord už si můžeš pustit kolik dalších věcí potřebuješ (třeba i to ssh) je to jednoduché elegantní...

Trochu nevýhoda je že ten supervisord sám žere asi 30mb RAM což je prd ale když chceš mít úsporné kontejnerů tak se bez něj jde obejít prostě ten ssh sever pustíš v entrypointu ale pustíš ho na pozadí abys pak mohl nahodit další službu. Není tak elegantní protože ten supervisord za tebe dělá i další práci (automaticky restart padnute servisi...)  což si jinak budeš muset v tom entrypointu nak pořešit sám (a nebo se na to vykašlat ono ssh zas tak často nepadne)

Moc děkuji za radu! Mohl bych tě poprosit o příklad souboru docker-compose.yml? Kam vložit ten supervisord a jak spoustit třeba ten "service ssh start"?