Docker är ett populärt verktyg för att utveckla och distribuera applikationer i paket som kallas containers. Ubuntu är en av de mest populära Linux-distribueringarna och är ett operativsystem som har bra stöd av Docker.

Genom att installera Docker på Ubuntu så skapas en idealisk plattform för dina utvecklingsprojekt, med hjälp av lättviktiga virtuella maskiner som delar Ubuntu’s operativsystemkärna. Den här handledningen hjälper dig att komma igång genom att förklara 4 sätt att göra detta på.

Mer om Docker

Docker hjälper till att göra applikationer portabla genom att låta dig bygga och köra dem på vilken Docker-host som helst. En container-avbildning kan användas utan ändringar överallt där Docker är tillgängligt – från din bärbara dator till molnet. Detta förenklar utvecklarupplevelsen genom att eliminera skillnader mellan körtidsmiljöer. Container-formatet är även lätt att distribuera över flera fysiska maskiner, vilket gör att du enkelt kan skala applikationer som svar på en förändrad efterfrågan.

Docker inkluderar allt som du behöver för att bygga och köra container-avbildningar, oavsett om de kommer från Docker Hub och andra offentliga register eller dina egna Dockerfiler.

Förberedelser för att installera Docker på Ubuntu

Du kan installera den senaste Docker-versionen på Ubuntu-versionerna 18.04, 20.04, 21.10 och 22.04. Det finns stöd för arkitekturerna x64_64/AMD64, ARMhf, ARM64 och S390x.

Du kan installera Docker på flera sätt, och ditt val beror på vilken funktionalitet som du behöver och vilket tillvägagångssätt som du föredrar när det gäller pakethantering. Du får lära dig alla möjliga alternativ i den här guiden.

Att välja en Docker Flavor

Docker på Linux har traditionellt sett varit terminalbaserat. En fungerande installation består av Docker Engine, en daemon som kör dina containers, och kommandoradsgränssnittet docker (CLI) för att interagera med daemon.

Docker Desktop är ett alternativt sätt att använda Docker på. Historiskt sett så har det bara funnits tillgängligt för Windows och Mac, men lanserades för Linux i maj år 2022. Docker Desktop på Ubuntu kräver en AMD64-processor och antingen Ubuntu 21.10 eller 22.04. Det erbjuder ett grafiskt gränssnitt för hantering av dina containers, ett integrerat Kubernetes-kluster och stöd för tillägg från tredje part. Docker Desktop ger dig även CLI: erna docker och Docker Compose.

Docker Desktop skiljer sig från Docker Engine genom att den använder en virtuell maskin för att köra dina containers (vilket är anledningen till att Docker Desktop krävs för Windows- och MacOS-användare). Även om det är möjligt att använda båda varianterna sida vid sida på Ubuntu, så kan det uppstå konflikter mellan docker CLI-versionerna. Det är bäst att välja en och hålla sig till den. Välj Docker Engine om du är bekväm i din terminal och vill ha det bästa stödet och den bästa prestandan. Docker Desktop’s VM gör den något tyngre men är det bättre valet om du vill ha ett integrerat användargränssnitt eller planerar att använda Kubernetes.

Installera Docker Engine på Ubuntu

Docker Engine är standardmetoden för att köra Docker på Ubuntu. Denna metod fungerar med alla versioner och miljöer som stöds, från en lokal Ubuntu Desktop-maskin till din Ubuntu Server-molnhost. Kontrollera att du kör en Ubuntu-version som är 18.04 eller senare innan du fortsätter.

Docker Engine har 3 olika installationsmetoder:

  1. Ett officiellt arkiv för Ubuntu apt
  2. Ett fristående Debianpaket (.deb)
  3. Ett automatiserat installationsskript

Alternativ 1, Ubuntu’s apt-arkiv, är det vanligaste alternativet. Det lägger till Docker i din paketlista så att du enkelt kan installera framtida uppdateringar genom att köra apt upgrade. Alternativ 2 stöder inte automatiska uppdateringar, men är idealiskt för att installera Docker på lufttäta offline-system. Skriptet för automatiserad installation är den enklaste metoden för att komma igång, men det är konfigurerat endast för utvecklingsanvändning. Docker avråder från användning av detta i produktionsmiljöer.

Använd apt-arkivet när du arbetar med ett produktionssystem, vill ha enkla uppdateringar eller behöver använda samma mekanism i alla miljöer.

Använd det automatiserade installationsskriptet om du vill ha en snabb installation när du experimenterar med Docker på din egen maskin.

1. Installera Docker med hjälp av apt-arkivet

Docker publicerar paket till sitt eget arkiv apt. Du måste lägga till det här arkivet i din källförteckning apt, annars kommer din apt -installation inte att kunna hitta Docker-paketen.

Börja med att uppdatera din befintliga paketlista och installera några beroenden för följande steg. Verktygen ca-certificates, curl, gnupg och lsb_release kommer att användas för att hämta rätt uppgifter om Docker apt -arkivet och signeringsnyckeln för ditt system. Även om du förmodligen redan har dessa paket, så skadar det inte att se till att de är tillgängliga.

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

Registrera sedan Docker’s GPG-nyckelring med apt. Detta låter apt validera de Docker-paket som du installerar.

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

Kommandot curl hämtar Docker’s GPG-nyckel för Ubuntu, omvandlar den tillbaka till standard OpenGPG-kodning och sparar den i apt: s nyckelring-katalog. chmod används för att ställa in behörigheterna för nyckelring-filen så att apt kan upptäcka den på ett tillförlitligt sätt.

Nu kan du lägga till Docker-paketkällan i ditt system. Kör följande kommando:

$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Detta använder skalersättning för att upptäcka systemets arkitektur automatiskt, t.ex. AMD64 eller ARM64, och hämta lämplig paketlista. Den kommer att verifieras med hjälp av den GPG-nyckel som lades till tidigare. Arkivet läggs till som en ny paketlista i apt /etc/apt/sources.list.d directory.

Uppdatera dina paketlistor igen så att apt vet att Docker-paketen finns:

$ sudo apt update

Nu kan du använda kommandot apt install för att lägga till Docker’s komponenter i ditt system. Du kommer att installera den senaste versionen av Docker Community Edition (CE). Det finns tre paket att installera:

  • docker-ce: Docker Engine daemon.
  • docker-ce-cli: Docker CLI som du kommer att interagera med.
  • containerd.io: containerkörningstid som kallas containerd och som startar och kör dina containrar.
$ sudo apt install docker-ce docker-ce-cli containerd.io

2. Installera Docker med hjälp av Debianpaketet

Det officiella paketet .deb är enkelt att installera, men du måste hämta och installera varje ny version manuellt. Paketen finns på en enkel filserver. Navigera först till Docker’s sida med versionsanvisningar för att hitta det senaste tillgängliga versionsnumret, exempelvis 20.10.20. Gå sedan till containerds GitHub-sida för att även kontrollera dess versionsnummer. Det kommer att se ut som 1.6.8.

Nu kan du köra följande sekvens av kommandon för att hämta rätt uppsättning paket för din plattform. Ersätt <DOCKER_VERSION> och <CONTAINERD_VERSION> med de aktuella versionsnumren för Docker respektive containerd.

$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce.deb
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce-cli_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce-cli.deb
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/containerd.io_<CONTAINERD_VERISON>-1_amd64.deb -o containerd.deb

Du kan även hämta filerna och granska alla tillgängliga versioner genom att besöka kataloglistan för din Ubuntu-version i din webbläsare.

När du har hämtat paketen Docker CE, CLI och containerd så använder du följande kommando för att installera dem:

$ sudo apt install ./docker-ce.deb ./docker-ce-cli.deb ./containerd.deb

Justera filnamnen om du har hämtat paketen manuellt utan att använda skriptet som tillhandahålls ovan.

3. Installera Docker med hjälp av installationsskriptet

Dockers bekvämlighetsskript automatiserar installationen av alla Dockerkomponenter. Det är inte interaktivt, så du kan luta dig tillbaka och vänta medan systemet förbereds för dig.

Ladda först ner skriptet:

$ curl -fsSL https://get.docker.com -o get-docker.sh

Kör nu skriptet med rot-rättigheter:

$ sudo sh get-docker.sh
Executing docker install script
...

Vänta tills skriptet är färdigt. Du bör se ett bekräftelsemeddelande som visar att Docker har installerats.

Skriptet är tänkt att vara en lösning som passar alla. Du kan inte anpassa vad det gör utan att direkt ändra skriptets källkod. Det är inte heller utformat för att utföra Docker-uppdateringar, eftersom det inte kommer att föra upp beroenden till sina senaste versioner.

Säkerställ att Docker Engine fungerar på Ubuntu

Oavsett vilken installations-metod som du använde så bör du se till att allt fungerar genom att starta en container:

$ sudo docker run hello-world

Du kommer att se hur Docker-klienten hämtar hello-world:image till din maskin från Docker Hub-arkivet:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625
Status: Downloaded newer image for hello-world:latest

En ny container startas då automatiskt. Startbilden ”hello-world” är konfigurerad för att köra ett enkelt kommando som ger ut lite grundläggande information om Docker och som sedan avslutas omedelbart:

Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 (amd64)
 3. The Docker daemon created a new container from that image which runs the
 executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
 to your terminal.

Om du ser utmatningen ovan så betyder detta att Docker är redo att användas. Daemon hämtade framgångsrikt hello-world:latest-avbildningen från Docker Hub och startade en container med den. Allt från raden ”Hello from Docker” och framåt sändes ut av processen i containern.

Inställning av behörigheter för Docker-motorn på Ubuntu

En ny Docker Engine-installation kräver vanligtvis rot-privilegier för att köra docker CLI-kommandon. Du måste föregå varje kommando med sudo, vilket är obekvämt.

Du kan undvika detta krav genom att lägga till dig själv i gruppen docker efter att du har installerat Docker Engine med hjälp av stegen ovan. Den här valfria ändringen ger dig behörighet att köra docker -kommandon som en vanlig användare, utan sudo, vilket förenklar din CLI-upplevelse.

Kontrollera att användargruppen docker finns:

$ sudo groupadd docker

Lägg sedan till dig själv i den:

$ sudo usermod -aG docker $USER

Om du tidigare har kört ett docker -kommando med sudo så måste du ändra behörigheterna för din katalog ~/.docker:

$ sudo chown $USER:$USER /home/$USER/.docker -R
$ sudo chmod g+rwx $HOME/.docker -R

Detta säkerställer att ditt eget användarkonto har rätt att läsa och skriva filer i katalogen.

Logga ut ur systemet och gå in igen så att ditt nya gruppmedlemskap träder i kraft. Försök att köra ett docker-kommando utan sudo:

$ docker run hello-world

Detta avslutar installationen av Docker på Ubuntu. Daemon är redan konfigurerad för att starta automatiskt så att du inte behöver konfigurera en tjänst manuellt. Om du planerar en avancerad installation så kan du läsa användarhandboken för Docker för instruktioner om hur du konfigurerar anpassade nätverk, loggning och volymlagringshantering.

Lägg till Docker Compose i din Ubuntu-installation

Docker Compose är ett populärt Docker-kompanjonverktyg som gör det enklare att arbeta med applikationer som använder flera containers. Medan docker CLI endast riktar sig till en container med varje kommando så kan docker compose starta och stoppa flera containers med varje åtgärd. Detta förenklar hanteringen av system där du har separata frontend-, backend- och databastjänster.

Docker Compose finns nu tillgängligt som en del av docker CLI. Compose V2-pluginet ingår när du använder det officiella installationsskriptet för att installera Docker. Det finns även tillgängligt i apt om du använde den metoden:

$ sudo apt install docker-compose-plugin

Du kan alternativt ladda ner det senaste arkivet .deb och installera det manuellt:

$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb -o docker-compose-plugin.deb
$ sudo apt install -i ./docker-compose-plugin.deb

Kontrollera att Compose fungerar genom att prova kommandot docker compose version:

$ docker compose version
Docker Compose version v2.6.0

Installation av Docker Desktop på Ubuntu

Medan Docker Engine är begränsat till en upplevelse som endast är begränsad till CLI, så erbjuder Docker Desktop ett grafiskt hanteringsgränssnitt, inbyggt Kubernetes-stöd och valfria tillägg från tredje part som kan hjälpa dig att förenkla dina arbetsflöden för containrar. Det är ett utmärkt val när du vill ha användarvänlighet på din egen arbetsstation.

För att installera Docker Desktop så installerar du först några beroenden med hjälp av apt:

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

Kör sedan följande kommandon för att lägga till Docker’s arkiv apt. Även om Docker Desktop inte ingår i arkivet, så refereras paketen i arkivet som beroenden i Debian’s arkiv för Desktop.

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update

Kommandot curl hämtar Dockers GPG-nyckel för Ubuntu, konverterar den tillbaka till standard OpenGPG-kodning och sparar den i katalogen apt-nyckelring. chmod används för att ställa in behörigheter för nyckelring-filen så att apt upptäcker den på ett tillförlitligt sätt.

Ladda ner arkivet Docker Desktop Debian från länken i dokumentationen. Detta ger dig den senaste stabila utgåvan av Docker Desktop för Linux. Använd apt för att installera paketet och byt ut versionsnumret som du hämtade:

$ sudo apt install ./docker-desktop-4.11.0-amd64.deb

Docker Desktop kommer nu att dyka upp i appstartaren. Använd start-applikationen för att starta Docker Desktop och öppna användargränssnittet. Du kommer även att kunna köra kommandona docker, docker compose och kubectl i terminalen. Applikationen lägger även till en meny i din shell badge som visar den aktuella Docker Desktop-statusen och låter dig utföra några snabba åtgärder.

Du kommer att uppmanas att acceptera ett serviceavtal första gången som du kör Docker Desktop. Tryck på knappen Acceptera om du samtycker och vänta medan Docker Desktop startar sin virtuella maskin.

Efter en stund så laddas instrumentpanelen. Den tillhandahåller genvägar för att skapa nya containers från populära avbildningar, vilket gör att du slipper långa terminalkommandon.

Docker Desktop är installerat på Ubuntu.
Docker Desktop är installerat på Ubuntu.

DevKinsta: Docker Desktop för WordPress

Specialiserade lösningar som bygger på Docker’s grund ger en ännu enklare upplevelse för specifika tekniker. DevKinsta är ett kostnadsfritt lokalt utvecklingsverktyg för att bygga WordPress-teman och -plugins som använder Docker för att helt isolera och säkra dina WordPress-webbplatser. Detta gör det snabbt och enkelt att starta och anpassa ett nytt WordPress-projekt utan att ställa in servrar själv. När du är klar så kan du trycka direkt på Kinsta-plattformen för att distribuera din live-webbplats.

Du kan installera DevKinsta på MacOS, Windows och Ubuntu.

Sammanfattning

De flesta utvecklare börjar att använda containrar med Docker. Du kan installera Docker på ditt Ubuntu-system väldigt smidigt, antingen som Docker Engine eller det nya Docker Desktop. När du väl har installerat Docker så är du fullt utrustad för att bygga och köra containers, vilket gör att du kan förenkla utvecklingen och minska skillnaderna mellan miljöer.

Om du utvecklar WordPress-teman och -plugins så kan DevKinsta förenkla skapandet av en lokal utvecklingsmiljö och distribuering av din webbplats.

James Walker

James Walker is the founder of Heron Web, a UK-based software development studio providing bespoke solutions for SMEs. He's experienced in delivering custom software using engineering workflows built around modern DevOps methodologies. James is also a freelance technical writer and has written extensively about the software development lifecycle, current industry trends, and DevOps concepts and technologies.