Newsletter 365tipů můžete číst zdarma. Placené předplatné je dobrovolná podpora, která pomáhá webu pokračovat.
Podpořit 365tipů

TIP#3317: Jak Docker dostat na MacOS?

Na Macu je instalace Dockeru jednodušší než ve Windows. Žádné WSL ani Hyper-V řešit nemusíte. Oficiální cesta vede přes Docker Desktop, případně ho můžete nainstalovat jedním příkazem přes Homebrew.

Co je Docker, jak fungují kontejnery a k čemu je to celé dobré, je podrobněji v tipu Jak na Windows nainstalovat Docker a k čemu je to dobré. Princip je na MacOS stejný, takže ho tady není nutné vysvětlovat znovu.

Nejjednodušší je Docker Desktop

Oficiální instalace nevede přes Mac App Store. Stáhněte si Docker Desktop for Mac, otevřete Docker.dmg a Docker přetáhněte do Applications. Pak spusťte Docker.app. Docker nabízí samostatnou verzi pro Macy s Apple silicon a stále také pro Intel Macy.

Docker Desktop aktuálně vyžaduje minimálně macOS Sonoma 14 a 4 GB RAM. Podporuje aktuální a dvě předchozí hlavní verze macOS, takže minimální požadovaná verze se postupně posouvá.

Při prvním spuštění potvrďte licenční podmínky a nechte Docker dokončit potřebné systémové nastavení. Samotný Docker Desktop běží jako běžný uživatel, administrátorská práva potřebuje jen pro některé systémové úpravy.

Přes Homebrew je to ještě jednodušší

Pokud už používáte Homebrew, stačí v Terminalu:

brew install --cask docker-desktop

Homebrew má pro Docker Desktop samostatný aktuální cask docker-desktop.

Pozor ale na velmi snadnou chybu:

brew install docker

nenainstaluje Docker Desktop. Dostanete Docker klienta pro příkazovou řádku, ale ne Docker Engine schopný na Macu skutečně spouštět kontejnery. Docker daemon na MacOS přímo neběží a potřebuje Linuxové prostředí ve virtuálním stroji nebo vzdálený Docker Engine. Pokud prostě chcete Docker používat na Macu, instalujte docker-desktop.

Jak poznat, že Docker funguje

Po instalaci spusťte Docker Desktop a v Terminalu zkuste:

docker version

A potom testovací kontejner:

docker run hello-world

Docker stáhne malý testovací image, vytvoří z něj kontejner a pokud je všechno v pořádku, vypíše potvrzení.

Ale vždyť MacOS je vlastně Linux. Nebo ne?

Ne. MacOS není Linux, i když to tak při práci v Terminalu může velmi snadno působit.

MacOS je unixový systém postavený na Darwinu a používá vlastní kernel XNU, který kombinuje technologie Mach a BSD. Linux má svoje vlastní Linuxové jádro. Oba světy sdílejí spoustu unixových principů, příkazů a nástrojů, ale nejsou to stejné operační systémy.

A právě tady je důvod, proč Docker Desktop něco dalšího potřebuje. Linuxové kontejnery potřebují Linuxové jádro, které MacOS nemá. Docker Desktop proto na Macu spouští lehký Linuxový virtuální stroj a kontejnery běží uvnitř něj. Docker dnes pro tento virtuální stroj nabízí například vlastní Docker VMM nebo Apple Virtualization framework.

Pro běžné používání o tomto virtuálním stroji prakticky nemusíte vědět.

POZNÁMKA: Osobně mám Docker na miniPC s Ubuntu, QNAP NAS a vlastně také na jednom Raspberry Pi. Ty první dva stroje ale běží většinu „docker věcí“, které používám. Například i „staging“ verze všech webů, včetně 365tipů, AdGuard, LiteLLM a kupu dalších užitečných věcí.

Apple silicon, Intel images a Rosetta

Na Macích s Apple silicon dávejte přednost Docker images pro ARM64 nebo images označeným jako multi-arch, které obsahují varianty pro více procesorových architektur.

Starší image existující pouze pro amd64/x86_64 lze často spustit také, například pomocí emulace, ale Docker sám takový provoz označuje jako best effort. Může být pomalejší, spotřebovávat více paměti a některé kontejnery nemusí fungovat správně.

S tím souvisí Rosetta 2. Docker ji na Apple silicon už striktně nevyžaduje, ale stále ji doporučuje a některé starší nástroje ji ještě mohou potřebovat. Dlouhodobě se na ni ale spoléhat nedá (protože viz Jak je to s koncem Rosetty a “Intel based” aplikací na Mac OS?).

Apple oznámil, že obecná podpora Rosetty pro Intelové aplikace zůstane do macOS 27. Od macOS 28 má zůstat pouze omezená podpora některých starších her. Pro Intelové Linuxové programy ve virtuálních ARM Linuxech zároveň Apple od macOS 27 přesouvá překlad přímo do systému, takže už nebude vyžadovat samostatnou instalaci Rosetty.

Pro Docker z toho plyne hlavně jednoduché doporučení: pokud máte Mac s Apple silicon, používejte pokud možno ARM64 nebo multi-arch images a nespoléhejte na to, že starý Intel-only image bude fungovat navždy bez problémů.

Docker jako cesta k Linuxu na Macu

Docker se hodí i tehdy, pokud potřebujete Linuxový shell, vývojové prostředí nebo nějakou linuxovou aplikaci, ale nechcete kvůli tomu instalovat klasický velký virtuální počítač.

Právě Docker je proto první z možností popsaných v Jak na MacOS mít (spustit) Linux?. Pokud potřebujete celý Linux včetně GUI nebo naopak něco ještě lehčího než Docker Desktop, najdete tam i OrbStack, Colimu, UTM, Parallels a další možnosti.