• Apple Container 1.0 – Apples eget alternativ till Docker på Mac

    Apple har släppt version 1.0 av sitt öppna containerverktyg för macOS. Med Swift, OCI-kompatibla avbildningar och lättviktiga Linuxmaskiner vill Apple erbjuda ett mer inbyggt alternativ till Docker Desktop – särskilt för utvecklare som behöver beständiga Linuxmiljöer direkt på sin Mac.

    Apple har släppt version 1.0 av sitt öppna containerverktyg för macOS. Verktyget, som är skrivet i programmeringsspråket Swift, gör det möjligt att skapa och köra Linuxbaserade containrar direkt på en Mac.

    Lanseringen innebär inte att Docker Desktop försvinner över en natt. Däremot visar den att Apple vill erbjuda Mac-utvecklare ett mer inbyggt och Apple-anpassat sätt att arbeta med Linuxmiljöer.

    Vad är en container?

    En container kan beskrivas som ett litet, isolerat paket som innehåller ett program och de komponenter som programmet behöver för att fungera.

    Tanken är att programmet ska kunna köras på samma sätt oavsett vilken dator utvecklaren använder. En utvecklare kan exempelvis bygga en webbapplikation på sin Mac och sedan köra samma applikation på en Linuxserver utan att behöva ändra hela utvecklingsmiljön.

    Docker är i dag det mest välkända systemet för detta.

    Problemet är att Linuxcontainrar bygger på funktioner som finns i Linuxkärnan. macOS använder inte Linuxkärnan och kan därför inte köra vanliga Linuxcontainrar direkt.

    För att lösa detta använder både Docker Desktop och Apples containerverktyg små virtuella Linuxmaskiner i bakgrunden.

    En virtuell Linuxmaskin för varje container

    Apples lösning skiljer sig något från traditionella containerplattformar. Varje container körs i en egen lättviktig virtuell Linuxmaskin.

    Det ger en hög grad av isolering. Om ett program eller en tjänst får problem inne i en container påverkas inte andra containrar lika lätt.

    Nackdelen är att virtuella maskiner normalt kräver mer resurser än traditionella containrar. Apple försöker minska detta genom att använda mycket små och snabbt startande Linuxmiljöer.

    För användaren ska resultatet ändå kännas ungefär som att arbeta med vanliga containrar.

    Verktyget kan skapa, starta, bygga och publicera containrar som följer OCI-standarden. OCI står för Open Container Initiative och är en öppen standard för hur containeravbildningar ska byggas och distribueras.

    Det innebär att Apples verktyg kan använda många av de containeravbildningar som redan finns tillgängliga.

    Linuxmiljöer som kan sparas

    En av de viktigaste nyheterna i version 1.0 är stöd för så kallade container machines.

    En vanlig container är ofta tillfällig. Den startas för att köra ett visst program och tas sedan bort när arbetet är färdigt.

    En container machine fungerar mer som en permanent Linuxdator inuti Macen. Den kan sparas mellan olika arbetstillfällen och fortsätta innehålla installerade program, inställningar och tjänster.

    Utvecklaren kan exempelvis skapa en Ubuntu-miljö för ett projekt och en Debian-miljö för ett annat. Miljöerna kan stängas av och startas igen senare utan att allt behöver byggas om från början.

    Det går också att köra ett init-system inne i Linuxmiljön. Init-systemet är den del av Linux som startar och hanterar bakgrundstjänster när systemet startar.

    Det gör det möjligt att köra exempelvis databaser, webbservrar och andra långvariga tjänster på ett mer realistiskt sätt.

    Macens hemkatalog kan delas med Linux

    En viktig del av Apples lösning är kopplingen mellan macOS och Linuxmiljön.

    När en container machine skapas kan användarens namn och hemkatalog automatiskt göras tillgängliga inne i Linuxsystemet.

    Det innebär att samma projektfiler kan användas från båda systemen.

    Utvecklaren kan exempelvis skriva och redigera kod i ett vanligt Mac-program, som Visual Studio Code eller Xcode, samtidigt som programmet byggs och körs inne i Linuxmiljön.

    Även personliga konfigurationsfiler, så kallade dotfiles, kan delas. Det kan exempelvis handla om inställningar för skalet, Git och olika utvecklingsverktyg.

    Hemkatalogen kan monteras med läs- och skrivrättigheter, endast för läsning eller inte delas alls. Det ger användaren möjlighet att välja mellan bekvämlighet och högre isolering.

    Flera Linuxdistributioner på samma Mac

    Apples containerverktyg är inte bundet till en enda Linuxdistribution.

    Utvecklare kan skapa separata miljöer med exempelvis:

    • Ubuntu
    • Debian
    • Alpine Linux
    • andra Linuxbaserade OCI-avbildningar

    Det kan vara användbart när ett program ska testas i flera olika servermiljöer.

    Ett företag kanske använder Debian på sina servrar, medan en kund använder Ubuntu. Utvecklaren kan då testa programmet i båda systemen utan att behöva installera flera fullständiga virtuella maskiner manuellt.

    Miljöerna kan fortfarande dela samma projektfiler och inställningar från macOS.

    Hanteras från terminalen

    Apple Container är främst ett kommandoradsverktyg. Det saknar alltså den grafiska kontrollpanel som många användare förknippar med Docker Desktop.

    Med kommandot container machine kan användaren bland annat:

    • skapa en ny Linuxmiljö
    • öppna ett interaktivt skal
    • köra enstaka Linuxkommandon
    • välja en standardmiljö
    • visa tillgängliga miljöer
    • kontrollera inställningar
    • stoppa och ta bort miljöer
    • ändra mängden processor och arbetsminne

    För utvecklare som redan arbetar mycket i terminalen kan detta upplevas som snabbt och naturligt. För mindre tekniska användare kan avsaknaden av ett grafiskt gränssnitt däremot vara en nackdel.

    Stöd för riktiga bakgrundstjänster

    Container machines kan även köra vanliga Linuxtjänster i bakgrunden.

    Det gör det möjligt att bygga mer realistiska testmiljöer. En utvecklare kan exempelvis köra en webbapplikation tillsammans med en databas, en webbserver och en meddelandekö inne i samma Linuxmiljö.

    Det är särskilt användbart för program som förväntar sig att köras på en traditionell Linuxserver och som inte passar lika bra i en kortlivad container med bara en enda process.

    På så sätt placerar sig Apples lösning någonstans mellan traditionella containrar och fullständiga virtuella maskiner.

    Avancerat stöd för nästlad virtualisering

    För mer avancerade användare finns även stöd för nästlad virtualisering.

    Det betyder att en virtuell maskin kan köra ytterligare virtualisering inuti sig själv. Funktionen kan exempelvis användas för att testa vissa typer av systemprogramvara eller för att köra virtualiseringsverktyg inne i Linuxmiljön.

    Kraven är dock relativt höga.

    Det behövs en Mac med Apple Silicon M3 eller senare, macOS 15 eller nyare samt en Linuxkärna där stöd för KVM har aktiverats.

    KVM är Linux inbyggda system för hårdvaruaccelererad virtualisering.

    Apples standardkärna har inte detta stöd aktiverat. Den som behöver funktionen måste därför tillhandahålla en egen anpassad Linuxkärna.

    Det här är alltså främst en funktion för avancerade utvecklare och systemadministratörer.

    Är detta slutet för Docker Desktop?

    Nej, åtminstone inte inom den närmaste framtiden.

    Docker har ett mycket större och mer etablerat ekosystem. Många utvecklare och företag använder redan Docker Compose, Docker Hub, grafiska administrationsverktyg och integrationer med olika utvecklingsplattformar.

    Apples verktyg är därför inte en direkt ersättare för alla befintliga Dockerflöden.

    Projekt som är starkt beroende av Docker Compose eller särskilda Docker Desktop-funktioner kommer sannolikt att fortsätta använda Docker.

    Apple Container kan däremot bli ett intressant alternativ för utvecklare som vill ha ett öppet, kommandoradsbaserat och mer macOS-anpassat verktyg.

    Det kan även bli en grund för framtida utvecklingsverktyg från Apple eller tredjepartsutvecklare.

    Ett nytt steg för Linuxutveckling på Mac

    Apple Container 1.0 visar att Apple tar containerbaserad Linuxutveckling på större allvar.

    Genom att kombinera OCI-kompatibla containeravbildningar, lättviktiga virtuella maskiner och tät integration med macOS försöker Apple göra gränsen mellan Mac och Linux mindre tydlig.

    Utvecklaren kan fortsätta använda sina vanliga Mac-program, samtidigt som själva programvaran byggs och testas i en riktig Linuxmiljö.

    Docker Desktop är fortfarande den mer kompletta och etablerade lösningen för många användare. Men Apples verktyg kan bli ett attraktivt alternativ för dem som föredrar enklare kommandoradsverktyg, öppna standarder och en lösning som är utvecklad särskilt för Apple Silicon.

    Version 1.0 är därför inte slutet för Docker på Mac. Det är snarare början på en ny konkurrent inom ett område som länge har dominerats av Docker.

    https://github.com/apple/container/releases/tag/1.0.0

    > FAKTA: APPLE CONTAINER 1.0

    Typ: Öppet containerverktyg för macOS

    Utvecklare: Apple

    Programmeringsspråk: Swift

    Plattform: macOS på Apple Silicon

    Containerformat: OCI-kompatibla Linuxcontainrar

    Teknik: Varje container körs i en lättviktig virtuell Linuxmaskin

    Nyhet i version 1.0: Beständiga Linuxmiljöer, så kallade container machines

    Linuxdistributioner: Exempelvis Ubuntu, Debian och Alpine Linux

    Host-integration: Macens hemkatalog, projektfiler och konfigurationsfiler kan delas med Linuxmiljön

    Hantering: Kommandoradsverktyget container machine

    Alternativ till: Docker Desktop, Podman och traditionella virtuella maskiner

    Status: Version 1.0 är den första stabila huvudversionen.

Etikett: Swift

  • Apple Container 1.0 – Apples eget alternativ till Docker på Mac

    Apple har släppt version 1.0 av sitt öppna containerverktyg för macOS. Med Swift, OCI-kompatibla avbildningar och lättviktiga Linuxmaskiner vill Apple erbjuda ett mer inbyggt alternativ till Docker Desktop – särskilt för utvecklare som behöver beständiga Linuxmiljöer direkt på sin Mac. Apple har släppt version 1.0 av sitt öppna containerverktyg för macOS. Verktyget, som är skrivet…