( Huncraft | 2018. 05. 13., v – 20:48 )

Én a helyedben nem a Dockerrel kezdeném a dolog megértését, hanem az egész container technológiával (A docker ennek csak az egyik implementációja).
Ha nagyon röviden kéne összegezni, akkor gondolhatsz a Containerekre úgy mint egy cgroup + Linux namespaces + UnionFS kombóra.
Az UnionFS adta pozitívumokra most nem rétek ki (az kb letudható a layerek szintjén kezelhető cache-elésben), a másik kettő viszont fontos tud lenni: Szeparáció a rendszer többi részétől, illetve erőforrás management. Hasonló technológiák ugyan már jó ideje léteznek (azok is kb a Linux kernel ezen képességeire építenek), viszont nagyon nem volt olyan tool ami egyetemesen ezt képes lett volna biztosítani bármilyen processre. És igen, itt most process-t írok direkt, mert a container szinten futtatott szolgáltatás (lehetőség szerint micro service)-re kb így is kell tekinteni: Egy process amit gyorsan el tudsz indítani (miután a megfelelő container image-et letöltötted) különösebb overhead nélkül, majd megállítani miután az befejeződött.
Erről az oldalról simán tekinthetsz rá úgy mint egy initd-s daemonra ami csak akkor fut ha tényleg van is rá igény (micro-service architektúrában).
És innen indul a containerek, illetve a köréjük épített management eszközök előnyei: Lehetővé teszik egy adott "process" deploymentjét és indítását meglehetősen gyorsan, többé kevésbé biztonságosan (egy container ugyan annyira biztonságos, mint egy kiadott program: Ha nem frissítik, akkor ugyan úgy lyukas lesz, mint egy ementáli).
Ha ez fölé még beleszámolod, hogy a micro-service architektúra kb mire is épít (rövid ideig élő containerek, amik szabványos interface-eken (általában valami REST API) kommunikálnak egymással, on-demand elindítva/leállítva), és hogy milyen további orchestration eszközök érhetőek el hozzá (Docker-swarm, Mesosphere, illetve manapság már inkább Kubernetes, vagy ha valaki nagyon Amazon EC2-re akar támaszkodni akkor esetleg Titus) akkor egy iszonyat jól skálázható rendszert kapsz, ahol alapból adott a High Availabilty, és az auto scale-in/out (feltéve, hogy van elégséges HW amire ki tudsz skálázni)
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..