Selfhosting

Patchovaný Docker host nestačí, kontejnery mají vlastní PHP i OpenSSL

Zdroj: Virtualization Howto

Your Docker Host Is Patched. Your Containers Might Not Be.
Foto: Virtualization Howto

Když hostitel s Dockerem dostane aktualizace, aplikace v kontejnerech z nich nic nemá – image si nese vlastní kopii PHP, OpenSSL i dalších knihoven. Brandon Lee na Virtualization Howto proto popisuje, jak zjistit, co v image je, a jak ověřit, že kontejner skutečně přešel na nový image. Záměna je častá: patch hostu vypadá jako opravená aplikace.

Kontejnery s Linuxem sdílejí jádro hostu, ale filesystém mají vlastní. Patch hostu je proto jen první vrstva; druhou je Docker Engine a třetí samotné image.

Klíčové parametry

  • Co host neřeší: knihovny uvnitř image, například PHP nebo OpenSSL
  • Inventura: docker ps --format a docker compose images
  • Skenování image: nástroje Trivy a Grype, v Dockhandu součástí kontroly
  • Pull není nasazení: docker compose pull image stáhne, kontejner běží dál
  • Restart nepomůže: docker restart spustí kontejner se stejným image
  • Vlastní build: docker compose build --pull --no-cache app

Srovnání

Host (Linux)Kontejner (image)
Co obsahujejádro a systémové balíčkyaplikaci a její závislosti
Jak se patchujeaktualizace balíčků na hostupull nového image a recreate
Jak zkontrolovatverze balíčků na hostudocker compose images, Trivy, Grype
Častá chyba—pull bez docker compose up -d
Pro kohokdo drží jádro a systémkdo provozuje webové aplikace

Rozdíl je v tom, kde software bydlí. Host řeší jádro a systém, kontejner si veze vlastní závislosti – a proto se obojí patchuje zvlášť, s jinou kontrolou dokončení. U image, které si stavíte sami, navíc nestačí pull: musí se rebuildovat z novější základní image.

Pro správce: Začněte inventurou, ne hromadným pullem: docker ps a docker compose images ukážou, co kde běží, a Trivy nebo Grype řeknou, jaké verze balíčků image obsahuje. Nový image sám o sobě neznamená opravenou aplikaci – u tagu latest ani u pevně zapsaného digestu není jisté, co přinese, proto čtěte poznámky k vydání. Po nasazení ověřte běžící kontejner přes docker compose ps a logy, ne jen to, že pull proběhl.

Zdroje

  1. Your Docker Host Is Patched. Your Containers Might Not Be. — Virtualization Howto

Odkazy vedou na primární zdroje. Text článku je redakční shrnutí, ne převzatá zpráva.