Hosana! Kontejnery na Macu byly doposud osina v zadku a jestli tohle pojede rozumně efektivně, pak palec nahoru. Když si vezmu, kam se posouvá jejich profi HW a jak zároveň macOS stagnoval, pokud šlo právě o profi aplikace jako kontejnery, můžu jen doufat, že v podobných zlepšeních budou jen pokračovat.
Jen ze zajímavosti, proč jsou teď osinou?
Chvíli jsem si před časem hrál s Dockerem, OrbStackem, nepřišlo mi to tak hrozné. Další možnost pro určité situace je nahození celého Linux virtuálu (např. přes UTM).
Tohle mi zatím přijde jen obdoba vyloženě pro OCI kontejnery, jen přímo od Apple.
Zajímavé je i to rozhodnutí, spouštět na pozadí automaticky svůj virtuál pro každý kontejner místo jednoho sdíleného container hosta. Což je možná zajímavé z hlediska totální izolace, na druhou stranu to podle mě nutně bude potřebovat víc paměti s více spuštěnými kontejnery (samostatné virtualizované systémy, každý se svou virtuální pamětí, page cache).
To je otázka, jestli to bude rychlejší. Tu rychlost běhu primárně určuje virtualizační metoda na Linux systém pod těmi kontejnery, efektivita emulace zařízení (síť a bloková zařízení).
Tam jsou v podstatě dvě možnosti, buď generické QEMU nebo nativní frameworky (Virtualization, Hypervisor, vmnet) od Apple v macOS, přičemž většina jich je dostupná do macOS 11 dál, a samozřjemě jsou tam inkrementální vylepšení s novými verzemi systémů.
Na začátku používalo hodně nástrojů právě QEMU, ale postupně přecházely na nativní frameworky (minimálně jako volbu). Tzn. třeba Docker Desktop má, myslím, někdy od loňska tuhle možnost také a QEMU je v podstatě deprecated.
Ty samé frameworky logicky používá i tenhle nový kontejnerizační nástroj od Apple.
Jestli vám přišly kontejnery pomalé, nemohlo to být tím, že máte Apple Silicon Mac a používané kontejnery byly jen pro amd64 (x86_64)? Tzn. musel se použít překlad na ARM (aarch64) - buď s Rosettou (rychlejší), nebo QEMU/binfmt (emulace - velmi pomalé).