Installera Docker på Ubuntu: APT, Snap, Rootless – Komplett guide 2026
Välj rätt installationsväg för Docker på Ubuntu.
Installation av Docker på Ubuntu bör vara enkel, men i praktiken konkurrerar flera olika Docker-installationsmetoder om samma kommandonamn, var och en med olika paketering, uppdateringsbeteende och säkerhetsimplikationer.
Denna guide jämför alla större installationsvägar så att du kan välja den som passar din maskin bäst.
De alternativ du kommer att stöta på inkluderar:
docker.iofrån Ubuntu-förvardocker-cefrån Docker:s officiella APT-förvar- Docker från Snap
- Docker Desktop
- manuellt nedladdade
.deb-paket - Docker:s bekvämlighetsscript
- rootless Docker (Docker utan root)

Även om de alla tillhandahåller verktyg för containerisering, är de inte utbytbara paket. Bästa valet beror på om maskinen är en utvecklingsarbetsstation, en CI-körare, en liten server, en självhostad box eller en produktionsvärd. Min standardrekommendation är lugn men bestämd: för de flesta tekniska användare på vanliga Ubuntu-maskiner, installera Docker Engine från Docker:s officiella APT-förvar. Använd Ubuntu:s docker.io endast när distributionsintegration väger tyngre än upstream Docker-paketering. Undvik Snap-paketet om du inte specifikt vill ha Snap-beteende och förstår dess begränsningar. Rootless Docker är värt att känna till, men det är inte automatiskt det bästa standardvalet för varje maskin.
Denna guide förklarar avvägningarna, täcker säkerhet efter installation och ger dig rena installationsvägar för varje metod. När Docker Engine är igång är Docker Cheatsheet din dagliga kommandoreferens, och Docker Compose Cheatsheet täcker multi-container-installationer. Båda finns bredvid Git, VS Code och CI/CD-guider i Developer Tools: The Complete Guide to Modern Development Workflows.
Snabb rekommendation
Tabellen nedsummerar vilken installationsväg som passar vanliga scenarier.
| Användningsfall | Rekommenderad installation |
|---|---|
| Utvecklingsarbetsstation | Docker officiella APT-förvar |
| CI-körare | Docker officiella APT-förvar, versionsspärrad vid behov |
| Liten självhostad server | Docker officiella APT-förvar |
| Produktionsserver | Docker officiella APT-förvar, kontrollerade uppdateringar |
| Ubuntu-endast konservativt system | Ubuntu docker.io-paket |
| Snabb desktopexperiment | Docker Desktop eller officiella APT-förvar |
| Snap-hantering Ubuntu-uppsättning | Docker Snap, med försiktighet |
| Starkt krav på icke-root-daemon | Rootless Docker |
| Air-gapped värd | Manuella .deb-paket eller intern mirror |
Om du inte har någon särskild anledning att välja annars, är Docker:s officiella APT-förvar standardvalet.
Vad som installeras
En normal Docker Engine-installation inkluderar flera komponenter:
- Docker-daemon:
dockerd - Docker CLI:
docker - container runtime:
containerd - low-level runtime:
runc - Buildx-plugin:
docker buildx - Compose-plugin:
docker compose
Modern Docker Compose installeras vanligtvis som ett Docker CLI-plugin. Det betyder att kommandot är:
docker compose version
Inte:
docker-compose version
Det gamla docker-compose-kommandot finns fortfarande i äldre guider och äldre system, men nya Ubuntu-installationer bör generellt använda Compose-pluginet.
Alternativ 1: Installera Docker från Docker:s officiella APT-förvar
Detta är det bästa standardvalet för de flesta utvecklare och DevOps-användare. Du får Docker:s upstream-paketering, aktuella Docker Engine-release, Buildx, Compose-plugin och en normal APT-uppdateringsväg.
Ta bort konfliktande paket först
Innan du installerar Docker CE, ta bort paket som kan krocka med de officiella Docker-paketen.
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
Det är okej om APT säger att några av dessa paket inte är installerade.
Detta kommando tar inte bort Docker-avbilder, containrar, volymer eller nätverk som lagras under /var/lib/docker. Om du vill ha en ren nollställning är det ett separat steg och bör göras medvetet.
Lägg till Docker:s officiella APT-förvar
Installera förutsättningar:
sudo apt update
sudo apt install ca-certificates curl
Skapa keyring-mappen:
sudo install -m 0755 -d /etc/apt/keyrings
Ladda ner Docker:s förvarssnyckel:
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
Tillåt APT att läsa nyckeln:
sudo chmod a+r /etc/apt/keyrings/docker.asc
Lägg till Docker-förvaret med hjälp av deb822 .sources-formatet:
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt keyrings/docker.asc
EOF
Uppdatera APT-metadata:
sudo apt update
Installera Docker Engine, Buildx och Compose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Kontrollera tjänsten:
sudo systemctl status docker
Om den inte körs:
sudo systemctl start docker
Verifiera installationen:
sudo docker run hello-world
Kontrollera versioner:
docker --version
docker buildx version
docker compose version
På denna punkt fungerar Docker, även om du fortfarande behöver sudo för de flesta kommandon om du inte konfigurerar icke-root-åtkomst i avsnittet efter installation nedan.
Alternativ 2: Installera Docker från Ubuntu-förvar
Ubuntu tillhandahåller docker.io-paketet, som du kan installera med:
sudo apt update
sudo apt install docker.io docker-compose-v2
Starta och aktivera Docker:
sudo systemctl enable --now docker
Verifiera:
sudo docker run hello-world
När Ubuntu docker.io är ett rimligt val
Ubuntu:s paket kan vara ett bra val när:
- Du föredrar Ubuntu-underhållna paket.
- Du vill ha en version som är linjerad med Ubuntu:s releaseprocess.
- Du hanterar många Ubuntu-värdar med standardförvar.
- Du inte behöver den senaste upstream Docker-release.
- Du vill ha färre tredjeparts APT-källor.
Detta är ett rimligt val. Det är inte “fel”.
När Ubuntu docker.io inte är idealiskt
Använd Docker:s officiella förvar istället när:
- Du vill ha den aktuella upstream Docker Engine.
- Du följer Docker:s egen dokumentation.
- Du förlitar dig på aktuell Buildx- och Compose-beteende.
- Du vill ha Docker CE-paketsnamn.
- Du felsöker problem mot upstream Docker-dokumentation.
- Du behöver förutsägbar Docker-versionsparitet över distributioner.
Min bias: för utvecklingsmaskiner och container-tunga värdar, använd Docker:s officiella APT-förvar. För konservativa Ubuntu-hanterade maskiner är docker.io acceptabelt.
Alternativ 3: Installera Docker med Snap
Docker Snap installeras med ett enda kommando, men enkelhet betyder inte alltid förutsägbar beteende på en server eller utvecklingsmaskin.
sudo snap install docker
Snap-paket har sin egen paketeringsmodell, uppdateringsbeteende, inneslutningsantaganden och filsystemslayout. Det är okej för många skrivbordsappar, men Docker Engine är redan en systemnivå container runtime, så den extra Snap-lagret kan överraska människor. Om du hanterar annan mjukvara med Snap, förklarar Snap Package Manager Cheatsheet kanaler, inneslutning och uppdateringsbeteende i mer detalj.
När Docker Snap är rimligt
Docker Snap kan vara rimligt när:
- Du medvetet hanterar mjukvara med Snap.
- Du använder Ubuntu Core eller en Snap-tung miljö.
- Du vill ha snap-liknande automatiska uppdateringar.
- Du experimenterar och bryr dig inte om att matcha Docker:s upstream APT-instruktioner.
Varför jag vanligtvis undviker Docker Snap
Jag undviker vanligtvis Docker Snap för utveckling och serveranvändning eftersom:
- De flesta Docker-dokumentation antar standard Docker Engine-layout.
- Felsökningsvägar kan skilja sig från APT-installationer.
- Tjänsthantering kan kännas mindre transparent.
- Snap automatiska uppdateringar kan vara obekväma för infrastrukturprogramvara.
- Vissa bindmounts, sockets och värdintegrationsdetaljer kan överraska dig.
Om Docker är central i ditt arbetsflöde, installera det som infrastruktur snarare än en casual desktop-app — även när en Snap-installation ser lockande ut på ytan.
Alternativ 4: Installera Docker från manuella .deb-paket
Manuell .deb-installation är användbar när:
- Maskinen inte kan använda externa APT-förvar.
- Du bygger en offline-installationsprocess.
- Du speglar paket internt.
- Du behöver strikt ändringskontroll.
Avvägningen är underhåll, eftersom du måste ladda ner och installera nya paket manuellt varje gång du uppgraderar.
En manuell installation kräver vanligtvis dessa paket:
containerd.iodocker-cedocker-ce-clidocker-buildx-plugindocker-compose-plugin
Installera dem med:
sudo dpkg -i ./containerd.io_*.deb \
./docker-ce_*.deb \
./docker-ce-cli_*.deb \
./docker-buildx-plugin_*.deb \
./docker-compose-plugin_*.deb
Åtgärda sedan saknade beroenden vid behov:
sudo apt --fix-broken install
Verifiera:
sudo systemctl status docker
sudo docker run hello-world
Manuella .deb-installationer är inte mitt första val, men de förblir giltiga för kontrollerade eller air-gapped miljöer där explicit paketgodkännande väger tyngre än bekvämlighet.
Alternativ 5: Använd Docker:s bekvämlighetsscript
Docker tillhandahåller ett bekvämlighetsscript:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Du kan förhandsgranska vad det skulle göra:
sudo sh get-docker.sh --dry-run
Bekvämlighetsscriptet är användbart för disposable testmaskiner, demos, laboratorier och kassable miljöer, men jag skulle inte använda det som huvudinstallationsmetod för produktionsystem. Ett script som konfigurerar förvar och installerar paket icke-interaktivt är bekvämt, men långvarig infrastruktur förtjänar explicita, granskbara steg — så för produktionsvärdar, använd APT-förvarmetoden direkt.
Docker Desktop vs Docker Engine på Ubuntu
Docker Desktop för Linux är en annan produkt än Docker Engine. Docker Engine är server-sides runtime och CLI-arbetsflöde som de flesta Linux-serveranvändare förväntar sig, medan Docker Desktop lägger till en GUI, Desktop-integrationer och en produktupplevelse närmare macOS och Windows Docker-användning.
Använd Docker Desktop när:
- Du vill ha en grafisk Docker-upplevelse.
- Du vill ha Desktop-funktioner.
- Du är i linje med ett team som standardiserar på Docker Desktop.
- Du bryr dig inte om den extra lagret.
Använd Docker Engine när:
- Du kör en server.
- Du vill ha en enkel Linux-native runtime.
- Du föredrar systemd-hanterade tjänster.
- Du bygger CI, DevOps eller självhostad infrastruktur.
- Du inte behöver GUI.
För en avancerad teknisk bloggpublik är Docker Engine vanligtvis det mer intressanta standardvalet på Linux-servrar och CI-värdar.
Efter installation: Kör Docker utan Sudo
Efter installation fungerar detta:
sudo docker ps
Men detta kan misslyckas:
docker ps
Det beror på att Docker-daemon lyssnar på en Unix-socket ägd av root. Den vanliga fixen är att lägga till din användare i docker-gruppen.
Skapa gruppen vid behov:
sudo groupadd docker
Lägg till din användare:
sudo usermod -aG docker $USER
Tillämpa den nya grupptillhörigheten:
newgrp docker
Eller logga ut och logga in igen.
Testa:
docker run hello-world
Viktig säkerhetsnotering om Docker-gruppen
docker-gruppen är inte en ofarlig bekvämlighetsgrupp. En användare som kan kontrollera Docker-daemon kan vanligtvis få root-ekvivalent kontroll av värden, så för en personlig utvecklingsmaskin är detta ofta acceptabelt, men på en delad server är det ett allvarligt åtkomstkontrollbeslut. Behandla medlemskap i docker-gruppen som admin-åtkomst, och om det känns för brett, överväg rootless Docker istället.
Rootless Docker på Ubuntu
Rootless Docker kör Docker-daemon och containrar som en icke-root-användare. Detta är inte detsamma som att lägga till din användare i docker-gruppen — med docker-gruppen kör daemon fortfarande som root, medan i rootless-läge kör daemon själv som din användare.
När Rootless Docker är rimligt
Rootless Docker är användbart när:
- Du vill minska daemon-nivå root-risk.
- Du är på en delad utvecklingsmaskin.
- Du kör användarägda containrar.
- Du inte behöver varje avancerad nätverks- och lagringsfunktion.
- Du vill ha en säkrare standard för experimentella arbetsbelastningar.
När Rootless Docker kan vara irriterande
Rootless Docker kan vara mindre bekvämt när:
- Du behöver privilegierade containrar.
- Du förlitar dig på låg portbindning utan extra setup.
- Du behöver vissa värdnätverksmönster.
- Du förväntar dig beteende identiskt med rootful Docker.
- Du följer guider skrivna för normala Docker Engine-installationer.
Rootless-läge förbättrar säkerhetspositionen, men det är inte friktionsfritt jämfört med en standard rootful-installation.
Installera Rootless Docker
Installera förutsättningar:
sudo apt update
sudo apt install uidmap
Om du installerade Docker från DEB eller APT-paket, bör rootless setup-verktyget vara tillgängligt:
dockerd-rootless-setuptool.sh install
Om rootful Docker redan körs och du bara vill ha rootless Docker, inaktivera systemdaemon:
sudo systemctl disable --now docker.service docker.socket
Du kan också behöva ta bort rootful socket:
sudo rm -f /var/run/docker.sock
Efter installation av rootless Docker skriver setup-verktyget vanligtvis ut miljövariabler att lägga till i din shell-profil. De ser vanligtvis ut så här:
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/user/1000/docker.sock
Din UID kan skilja sig. Kontrollera den exakta outputen från setup-verktyget.
Aktivera lingering om du vill att användartjänsten ska köra efter logout:
sudo loginctl enable-linger $USER
Kontrollera användartjänsten:
systemctl --user status docker
Kör en testcontainer:
docker run hello-world
Rootful Docker vs Rootless Docker
| Ämne | Rootful Docker | Rootless Docker |
|---|---|---|
| Daemon-användare | root | normal användare |
| Kommandobekvämlighet | hög | medium |
| Kompatibilitet | högst | bra, men inte perfekt |
| Säkerhetsposition | svagare som standard | bättre som standard |
| Privilegierade containrar | stöds | begränsad |
| Låga portar | enkel | kräver extra setup |
| Serveranvändning | vanlig | möjlig, men planera noggrant |
| Utvecklingsarbetsstation | vanlig | bra för säkerhetsmedvetna användare |
Min praktiska rekommendation:
- Använd normal rootful Docker för en personlig dev-maskin eller enkel server.
- Lägg bara till betrodda användare i
docker-gruppen. - Använd rootless Docker när användarisolering är viktig.
- Gör inte pretens om att
docker-gruppen är en säkerhetsgräns.
Aktivera Docker vid start
På Ubuntu startar Docker installerat från normala paket vanligtvis automatiskt, men det är värt att bekräfta efter en ny installation eller migration.
Kontrollera:
systemctl is-enabled docker
systemctl is-enabled containerd
Aktivera manuellt vid behov:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Starta nu:
sudo systemctl start docker
Inaktivera autostart:
sudo systemctl disable docker.service
sudo systemctl disable containerd.service
För rootless Docker, använd användartjänsten:
systemctl --user enable docker
systemctl --user start docker
Och aktivera lingering vid behov:
sudo loginctl enable-linger $USER
Installera eller verifiera Docker Compose
Med Docker:s officiella APT-förvar, installera Compose som ett plugin:
sudo apt update
sudo apt install docker-compose-plugin
Verifiera:
docker compose version
Om du installerade Ubuntu:s paket kan du använda:
sudo apt install docker-compose-v2
Föredra:
docker compose up -d
Över den gamla stilen:
docker-compose up -d
Den bindestreckade docker-compose-kommandotillhör den äldre standalone Compose-eran. Många system har den fortfarande, men ny dokumentation bör använda docker compose.
Kontrollera vilken Docker du har installerat
När du ärvt en maskin eller felsöker en trasig installation hjälper dessa kommandon att identifiera vilken Docker-paketering som faktiskt används.
Kontrollera Docker-binären:
which docker
Kontrollera pakeägande:
dpkg -S "$(which docker)"
Lista Docker-relaterade paket:
dpkg -l | grep -E 'docker|containerd|runc'
Kontrollera APT-policy:
apt-cache policy docker-ce docker.io containerd.io docker-compose-plugin docker-compose-v2
Kontrollera Snap:
snap list | grep docker
Kontrollera tjänststatus:
systemctl status docker
systemctl status containerd
Kontrollera Docker serverdetaljer:
docker info
Om docker info misslyckas utan sudo, kontrollera din gruppmedlemskap:
groups
Migrera från Ubuntu docker.io till Docker CE
Stoppa Docker:
sudo systemctl stop docker
Ta bort Ubuntu-paket:
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc containerd runc
Lägg till Docker:s officiella APT-förvar med stegen ovan.
Installera Docker CE:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Starta Docker:
sudo systemctl start docker
Kontrollera befintliga containrar:
docker ps -a
docker images
docker volume ls
Normalt tar bort av paket inte bort /var/lib/docker, så dina avbilder, containrar och volymer kan fortfarande finnas. Backa upp viktig data först.
Migrera från Docker Snap till Docker CE
Inspektera först vad som finns:
snap list | grep docker
docker info
Stoppa arbetsbelastningar och backa upp viktiga volymer eller bind-mounted data.
Ta bort snap:
sudo snap remove docker
Installera sedan Docker CE från det officiella APT-förvaret.
Var försiktig med dataplats. Snap-paket använder ofta olika sökvägar och inneslutningsregler. Anta inte att Docker Snap-data automatiskt dyker upp under standard /var/lib/docker-sökvägen efter migration.
För viktiga tjänster, exportera eller backa upp data explicit innan du byter paketkällor.
Spärra en Docker-version med APT
För produktionsliknande system kan du vilja ha kontrollerade uppdateringar.
Lista tillgängliga versioner:
apt list --all-versions docker-ce
Installera en specifik version:
VERSION_STRING="5:29.0.0-1~ubuntu.24.04~noble"
sudo apt install docker-ce=$VERSION_STRING \
docker-ce-cli=$VERSION_STRING \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
Håll Docker-paket:
sudo apt-mark hold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Ta bort hållningen senare:
sudo apt-mark unhold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Gör detta när du behöver förutsägbara ändringsfönster. För en personlig laptop kan det vara onödigt.
Firewall och nätverksnoteringar
Docker modifierar packet filteringsregler för att göra container-nätverk fungera, vilket är viktigt om du använder UFW, firewalld, nftables eller anpassade firewall-regler.
Viktiga punkter:
- Publicerade Docker-porter kan kringgå naiva UFW-förväntningar.
- Docker använder iptables-integration.
- Anpassade regler bör ta hänsyn till Docker-skapade kedjor.
- Serverhårdning bör testas med verkliga container-portmappningar.
- Anta inte att
ufw denyskyddar en port publicerad av Docker.
Testa exponerade portar från en annan maskin, inte bara från localhost.
Exempel:
docker run --rm -p 8080:80 nginx
D sedan från en annan värd:
curl http://server-ip:8080
På servrar är Docker-nätverk en del av din säkerhetsmodell, inte en implementeringsdetalj du kan ignorera efter installation.
Vanliga fel och åtgärder
Permission Denied på Docker Socket
Fel:
permission denied while trying to connect to the Docker daemon socket
Åtgärdsalternativ:
Använd sudo:
sudo docker ps
Eller lägg till din användare i docker-gruppen:
sudo usermod -aG docker $USER
newgrp docker
Kom ihåg att docker-gruppen är root-ekvivalent i praktiken, så behandla gruppmedlemskap som ett privilegierat åtkomstbeslut.
Docker-daemon körs inte
Kontrollera status:
sudo systemctl status docker
Starta den:
sudo systemctl start docker
Kontrollera loggar:
journalctl -u docker --no-pager -n 100
Konfliktande Docker-paket
Om installation av Docker CE misslyckas på grund av konflikter, ta bort gamla paket. Om APT själv är i dåligt skick efter att ha lagt till Docker-förvaret, arbetar genom Ubuntu APT-felsökning för trasiga paket och GPG-fel innan du försöker igen.
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
Försök sedan igen:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Compose-kommando hittades inte
Kontrollera modern Compose:
docker compose version
Installera plugin:
sudo apt install docker-compose-plugin
Om du förväntade dig det gamla kommandot:
docker-compose version
Du kan följa gammal dokumentation. Föredra att uppdatera kommandot till docker compose.
Gamal root-ägd Docker-konfiguration
Om du körde Docker med sudo innan du satte upp gruppåtkomst, kan din användarkonfiguration ägas av root.
Åtgärda ägarskap:
sudo chown "$USER":"$USER" "$HOME/.docker" -R
sudo chmod g+rwx "$HOME/.docker" -R
Eller ta bort konfigurationen om du inte behöver den:
sudo rm -rf "$HOME/.docker"
Den kommer att skapas om.
Kan inte ansluta till Rootless Docker
Kontrollera miljö:
echo "$DOCKER_HOST"
Kontrollera användartjänst:
systemctl --user status docker
Ställ in socket-sökvägen vid behov:
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
Lägg till den i din shell-profil först efter att ha bekräftat att den är korrekt.
Avinstallera Docker Engine
Ta bort Docker CE-paket:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
Ta bort Docker-data endast om du verkligen vill ta bort avbilder, containrar och volymer:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Ta bort Docker-förvarsfiler:
sudo rm -f /etc/apt/sources.list.d/docker.sources
sudo rm -f /etc/apt/keyrings/docker.asc
Uppdatera APT:
sudo apt update
För Docker Snap:
sudo snap remove docker
För Ubuntu docker.io:
sudo apt purge docker.io docker-compose-v2
Rekommenderad installationsväg för de flesta Ubuntu-användare
För de flesta tekniska Ubuntu-användare är detta den rena vägen:
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
Bestäm sedan om du vill ha gruppåtkomst för bekvämlighet eller rootless Docker för tätare isolering:
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
Slutlig opinionerad vägledning
Docker-installation på Ubuntu är ett operativt val, inte bara ett paketval. Metoden du väljer påverkar uppdateringar, säkerhetsgränser och hur nära din värd matchar upstream Docker-dokumentation.
Mina praktiska regler är:
- Använd Docker:s officiella APT-förvar för de flesta utvecklings- och DevOps-maskiner.
- Använd Ubuntu
docker.ionär Ubuntu-förvarskonsistens väger tyngre än upstream färskhet. - Undvik Docker Snap för allvarliga container-arbetsflöden om du inte medvetet vill ha Snap-beteende.
- Undvik bekvämlighetsscriptet för produktionsvärdar.
- Använd modern
docker compose, inte gammaldocker-compose. - Behandla
docker-gruppen som privilegierad åtkomst. - Överväg rootless Docker när användarisolering är viktig.
- Spärra versioner på produktionsliknande system.
- Testa firewall-beteende när du publicerar porter på servrar.
Den mest tråkiga Docker-installationen är vanligtvis den bästa: officiell APT-förvar, explicit keyring, Compose-plugin, systemd-tjänst, förstådda behörigheter och inget mysterie paketeringslager i mitten. När motorerna är på plats är multi-service-arbetsbelastningar — inklusive självhostade LLM-stacks — ett naturligt nästa steg; se till exempel Ollama in Docker Compose för att köra lokala modeller i containrar. För att hålla en Compose-stack igång över omstartar på en server, går Run Docker Compose as a Linux Service with systemd igenom unit-filer och operativa vanor.
Läs mer
- https://docs.docker.com/engine/install/ubuntu/ “Installera Docker Engine på Ubuntu | Docker Docs”
- https://packages.ubuntu.com/noble/docker.io “Ubuntu - Detaljer om paket docker.io i noble”