Hoppa till innehåll
Installation

Installera Podman

Kör containrar med nästan samma kommandon som Docker, utan bakgrundstjänst och utan administratörsrättigheter.

Vad Podman är

Ett program som kör containrar, alltså färdigpaketerade program som startar likadant på varje dator. Samma sak som Docker gör, och med nästan samma kommandon. Skriver ni podman i stället för docker fungerar det mesta ni redan lärt er.

Två skillnader är värda att känna till. Podman kör utan en bakgrundstjänst som måste vara igång, vilket betyder färre rörliga delar. Och Podman kör containrar som er vanliga användare i stället för som systemets administratör, vilket betyder att ett program som går sönder inuti containern inte har tillgång till hela datorn.

Behöver ett företag byta från Docker? Nej. Men om ni ändå ska välja ett, och särskilt om ni kör Linux, är Podman ett fullgott val utan licensfrågor.

Linux Mint

Här är det enklast. Öppna Terminal och kör:

sudo apt-get update
sudo apt-get install podman

Det är hela installationen. Ingen tjänst att starta, ingen omstart. Kontrollera med:

podman run hello-world

Får ni en hälsningstext fungerar allt. Första gången frågar Podman ofta vilket bildarkiv den ska hämta från, och ni väljer docker.io i listan. Kommer det i stället ett felmeddelande om att namnet inte gick att slå upp, skriv docker.io/library/hello-world i sin helhet så slipper Podman gissa.

Windows

På Windows kör Podman containrarna inuti WSL2, alltså Windows egen inbyggda Linux. Det är inte något ni behöver förstå i detalj, men det förklarar varför installationen har ett extra steg.

Installera först WSL2 om det inte redan finns. Öppna PowerShell som administratör, kör wsl --install och starta om datorn.

Hämta sedan Podman Desktop från podman-desktop.io och kör installationsprogrammet. Det ger er både det grafiska gränssnittet och kommandot podman i PowerShell.

Innan något kan köras behöver ni starta den Linux-maskin som containrarna bor i:

podman machine init
podman machine start

Det första kommandot körs en gång. Det andra körs varje gång ni startat om datorn, om ni inte ställt in att maskinen ska starta automatiskt. Kontrollera sedan med podman info.

Tre saker att göra först

  1. Prova att det ni redan kan fungerar. Kör podman run -d -p 8080:80 nginx och surfa till http://localhost:8080. Det är samma kommando som med Docker, bara ett annat första ord, och att se det fungera tar bort mycket oro.
  2. Kör podman ps och sedan podman stop med namnet ni får. Att kunna se vad som kör och stänga av det är halva vardagen med containrar, och de två kommandona räcker längre än man tror.
  3. Prova compose-filer om ni har några sedan tidigare. Paketet podman-compose installeras med sudo apt-get install podman-compose på Mint, och läser samma filer som Docker Compose. Stöd finns, men är inte hundra procent, så räkna med att någon fil behöver en justering.

Den vanligaste fällan

Portar under 1024. Eftersom Podman kör som er vanliga användare, och inte som administratör, får den inte öppna de låga portarna. Kommandot podman run -p 80:80 nginx ger därför ett nekande svar på Linux, medan exakt samma kommando med Docker fungerar. Det ser ut som att Podman är trasigt. Det är i själva verket den säkerhet ni valde.

Lösningen är att använda en hög port utåt, alltså -p 8080:80, och det räcker i nästan alla lägen medan ni utvecklar. Ska tjänsten ligga på riktig port 80 utåt löser man det på servern med en omdirigering, inte genom att köra hela Podman som administratör.

Den andra halvan: containrar som ni startat som er användare syns inte om ni sedan kör sudo podman ps. De är två skilda världar med varsin lista. Blanda inte sudo in i det här, så slipper ni undra vart era containrar tog vägen.