Tutoriel Linux

Maszyna kontenerowa: ciesz się natywnym środowiskiem Linux na komputerze Mac, podobnym do WSL

Débutant5 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Dla użytkowników systemu Windows WSL (Windows Subsystem for Linux) stał się podstawowym rozwiązaniem do uruchamiania Linuksa bezpośrednio w systemie Windows. Na komputerach Mac podobne rozwiązanie praktycznie nie istniało aż do niedawnego pojawienia się Container Machine, trybu narzędzia Apple Container. Oferuje on natywne, trwałe i zintegrowane środowisko Linux dla komputerów Mac z procesorami Apple Silicon i systemem macOS 26.

W przeciwieństwie do tradycyjnych kontenerów, ta lekka maszyna wirtualna oferuje kompletny system umożliwiający uruchamianie usług, jednocześnie współdzieląc katalog domowy między systemami Mac i Linux. Efekt? Elastyczne środowisko, idealne do tworzenia oprogramowania lub skryptów powłoki bash.

Dowiedzmy się, co wyróżnia maszyny kontenerowe, jak działają w praktyce i dlaczego są one przyczyną pojawienia się nowego sposobu korzystania z systemu Linux na komputerach Mac.

maszyna kontenerowa: nowa era natywnego Linuksa na Apple Silicon Mac

Maszyna kontenerowa to nowa funkcja narzędzia Apple do obsługi kontenerów o otwartym kodzie źródłowym. Nie tylko uruchamia jednorazowy kontener, ale tworzy trwałą maszynę z kompletnym systemem Linux.

Główną zaletą jest możliwość utrzymywania stanu między sesjami. Możesz instalować pakiety, uruchamiać usługi i modyfikować środowisko według własnego uznania. Jest to rozwiązanie znacznie bliższe prawdziwemu systemowi Linux niż typowy kontener aplikacji.

Z technicznego punktu widzenia, ten tryb uruchamia system init w obrazie, często systemd, a plik $HOME systemu macOS zostaje zamontowany na komputerze. Kod edytowany w systemie macOS może być następnie używany bezpośrednio w systemie Linux, bez żmudnego duplikowania.

Uderzające podobieństwo do podsystemu Windows dla systemu Linux

Dla administratorów i programistów znających WSL w systemie Windows porównanie jest naturalne. Oba systemy oferują prawdziwe jądro Linuxa w lekkiej maszynie wirtualnej.

Kolejnym istotnym punktem jest integracja systemu plików: w WSL uzyskujesz dostęp do dysków Windows, tutaj, w maszynie kontenerowej, katalog użytkownika macOS jest współdzielony do odczytu i zapisu.

Można uruchamiać prawdziwe usługi Linuxa (obsługa systemd na dostosowanych obrazach), co jest niezwykle istotne przy testowaniu złożonych scenariuszy bez opuszczania systemu macOS.

Jak wdrożyć kontener maszynowy i zwiększyć produktywność

Wymagania wstępne: komputer Mac z chipem Apple Silicon, zainstalowany system macOS 26 oraz narzędzie kontenerowe skonfigurowane z uruchomioną usługą (uruchomienie systemu kontenerowego). Po wykonaniu tych kroków utworzenie jest proste.

Zaczynamy od kompatybilnego obrazu init Linuksa (na przykład alpine:latest lub zmodyfikowanego Ubuntu). Na przykład:

maszyna kontenerowa utwórz alpine:latest –name devbox

Po uruchomieniu tej maszyny proste polecenie „container machine run -n devbox” otwiera powłokę z uprawnieniami użytkownika, z bezpośrednim dostępem do $HOME macOS.

Bezproblemowe udostępnianie plików między systemami macOS i Linux

Kluczową zaletą jest pełna transparentność udostępniania plików. Zamiast wymieniać pliki za pośrednictwem woluminów lub kopii Dockera, środowisko Linux korzysta bezpośrednio z katalogu domowego Maca.

Załóżmy, że tworzysz skrypt dla serwera Linux, ale macOS korzysta z własnych wersji narzędzi BSD. Testowanie lokalne często prowadzi do ukrytych błędów.

Dzięki maszynie kontenerowej ten skrypt działa pod prawdziwym Linuksem, wykrywając rozbieżności związane z narzędziami GNU, nie opuszczając wygodnego edytora macOS.

Zbuduj środowisko Ubuntu z systemd i usługami startowymi

Tworzenie maszyny kontenerowej za pomocą systemd jest nieco bardziej techniczne. Wymaga zbudowania niestandardowego obrazu Ubuntu zawierającego system init, przy użyciu oficjalnego pliku Dockerfile zawartego w dokumentacji Apple.

Po kompilacji (wymagającej Rosetty 2) tworzona jest maszyna:

maszyna kontenerowa utwórz lokalną/ubuntu-machine:latest –name devubuntu

Od tego momentu dostępne są wszystkie standardowe polecenia systemowe, w tym administracja za pomocą systemctl. Na przykład: zainstaluj Apache i MariaDB, uruchom usługi i włącz ich automatyczne uruchamianie!

Pobierz adres IP i uzyskaj dostęp do serwera WWW z systemu macOS

Maszyna ma swój własny adres IP w sieci wirtualnej. Użyj polecenia „container machine ls”, aby znaleźć ten adres.

Następnie wpisanie adresu URL w przeglądarce Mac spowoduje otwarcie strony głównej Apache’a hostowanej na maszynie kontenerowej. Ten stan jest trwały i nie znika po wyłączeniu lub ponownym uruchomieniu.

Taka konfiguracja rzeczywiście zbliża ten tryb maszyny do lekkiej maszyny wirtualnej, ale jest zoptymalizowana specjalnie pod kątem tworzenia oprogramowania w systemie macOS-Linux.

Rozpowszechnij swoje oprogramowanie w wielu środowiskach, aby przetestować je w różnych warunkach.

Kolejna kluczowa zaleta: możesz tworzyć osobne maszyny z różnymi dystrybucjami. Debian, Ubuntu, Alpine… Każda maszyna współdzieli ten sam katalog domowy macOS.

W rezultacie standardowe pliki konfiguracyjne (.bashrc, .gitconfig itp.) pozostają zsynchronizowane w tych środowiskach. Jest to przydatne do weryfikacji solidności lub kompatybilności projektu wieloplatformowego.

To rzadka i mile widziana okazja dla każdego administratora lub programisty Linux/Unix pracującego na komputerze Mac.

Ograniczenia, o których należy pamiętać w 2026 r.

Projekt jest młody i wciąż się rozwija. W przeciwieństwie do WSL, nie ma odpowiednika WSLg dla grafiki w systemie Linux. Współdziałanie między systemami macOS i Linux jest obecnie ograniczone do plików.

Zagnieżdżona wirtualizacja za pośrednictwem KVM nie jest jeszcze wykorzystywana na procesorach Apple Silicon, ale istnieje taka możliwość w przyszłych wersjach.

Wreszcie, należy rozważyć alternatywy takie jak Lima, Multipass lub OrbStack, gdy dojrzałość i bogactwo funkcji mają kluczowe znaczenie.

sudo apt update && sudo apt upgrade