Co je kontejnerizace a kde do ní patří Docker?
Kontejnerizace zabalí aplikaci i se vším, co potřebuje k běhu, tedy kódem, knihovnami a nastavením, do jedné izolované jednotky, které se říká kontejner. Kontejner běží stejně na notebooku, na testovacím serveru i v produkci, protože si nese své prostředí s sebou. Tím končí klasická výmluva „na mém počítači to funguje“.
Docker je nejpoužívanější nástroj pro stavbu a spouštění kontejnerů. Aplikaci popíšete v krátkém textovém souboru (Dockerfile), Docker z něj vyrobí znovupoužitelnou image a z té image spustíte jeden nebo více stejných kontejnerů.
Lidsky řečeno
Představte si kontejner jako lodní kontejner v přístavu. Je jedno, co je uvnitř, jestli nábytek, nebo ovoce, protože bedna má jednotný tvar, a tak ji každý jeřáb, kamion i loď zvládne stejně. Docker zabalí vaši aplikaci do takové jednotné bedny. Ať bedna přistane kdekoli, otevře se a funguje přesně tak, jako když jste ji zapečetili.
Proč na tom záleží
- Stejné chování všude. Tatáž image běží ve vývoji, v testech i v produkci, takže projde míň překvapení.
- Lehké a rychlé. Kontejnery sdílejí operační systém hostitele, naběhnou za pár vteřin a spotřebují mnohem méně paměti než celý virtuální stroj.
- Snazší škálování a nasazení. Kontejner je soběstačný, takže ho spustíte v mnoha kopiích, přesouváte mezi servery a předvídatelně vydáváte aktualizace.
Na co si dát pozor
- Kontejnery nejsou virtuální stroje. Sdílejí jádro hostitele, což je dělá lehkými, ale izolují slaběji než plný virtuální stroj.
- Nafouklé image. Když začnete od těžké základní image, máte pomalé sestavení a větší prostor pro útok. Použijte štíhlý základ a zkopírujte do něj jen to, co potřebujete.
- Hesla zapečená do image. Hesla a API klíče do
Dockerfilenepatří. Předejte je až při spuštění přes proměnné prostředí nebo správce tajemství. - Zapomenutá data. Když se kontejner zastaví, všechno, co se do něj zapsalo, je pryč. Na data, která chcete uchovat, použijte úložiště (volume).
Související články
- Co je Docker Compose? - Jak spustit aplikaci složenou z více kontejnerů z jednoho souboru.
- Co je DevOps? - Kultura a postupy, díky kterým dodávání přes kontejnery funguje.
- Co je CI/CD? - Jak automatizovat stavbu, testování a vydání kontejnerů.
Chcete být o krok napřed?
Nenechte si utéct naše nejlepší postřehy. Žádný spam, jen praktické analýzy, pozvánky na exkluzivní eventy a shrnutí podcastů přímo do vaší schránky.
