Docker är en populär programvara för containerisering. Containrar är en standardiserad programvaruenhet som paketerar kod och alla dess beroenden så att en applikation kan köras snabbt och tillförlitligt på olika operativsystem och datormiljöer.
I tekniska termer är en container en körande process som är isolerad från andra processer och har tillgång till datorresurser. Låt oss nu titta på hur du installerar Docker i Debian 11 och kör den första applikationen.
Det finns två sätt att installera, med Debians standardförvar eller det officiella Docker-förvaret. Debian-arkivet innehåller inte den senaste versionen, så låt oss överväga att installera från det officiella Docker-arkivet.
Innan du lägger till förvaret måste du uppdatera paketlistan genom att köra kommandot:
$ sudo apt update
Installera även ytterligare paket som behövs för att arbeta med fjärrförvar. För att installera dessa paket kör du kommandot:
$ sudo apt -y install ca-certificates curl gnupg lsb-release
Hämta och lägg sedan till PGP-nyckeln från förvaret. För att göra detta kör du kommandot:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
För att lägga till förvaret måste du köra kommandot:
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
För att installera paketet måste du först uppdatera paketlistorna så att ett nytt repository visas i systemet. För att göra detta kör du helt enkelt kommandot:
$ sudo apt update
Slutligen kan du installera ytterligare paket. Installationen görs med hjälp av kommandot:
$ sudo apt -y install docker-ce docker-ce-cli containerd.io
Ordet ce
i paketnamnet docker-ce
står för community
, vilket innebär att gratisversionen (även kallad community-versionen) kommer att installeras. Nu vet du hur du installerar docker debian.
Efter installationen kommer den att vara avstängd som standard. För att starta programmet måste du köra kommandot:
$ sudo systemctl start docker
För att det ska kunna köras med operativsystemet måste det läggas till i autoladdaren med hjälp av kommandot:
$ sudo systemctl enable docker
Som standard är det bara root-användaren som kan använda och utföra kommandon i terminalen. Om du utför ett kommando från en vanlig användare kommer terminalen att visa följande felmeddelande:
Fick nekad behörighet när jag försökte ansluta till Docker-daemonens socket på unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
Om du vill köra kommandot som en vanlig användare och utan att använda sudo-kommandot
måste du lägga till användaren i docker-gruppen
. Dockergruppen
skapas automatiskt under installationen. Men om den av någon anledning inte skapas automatiskt måste den skapas manuellt genom att utföra följande kommando:
$ sudo groupadd docker
Kör sedan för att lägga till den aktuella användaren i docker-gruppen:
$ sudo usermod -aG docker $USER
Variabeln $USER
innebär att den aktuella användaren, för vars räkning sessionen startas, kommer att läggas till i docker-gruppen
. Den här variabeln finns i alla moderna Linux-distributioner. Det är också värt att notera att docker-gruppen ger privilegier som motsvarar de som root-användaren har.
När du har lagt till en användare är det nödvändigt att logga in i systemet igen och först då kan du köra valfritt Docker-kommando
för testning. Som ett exempel kördes kommandot docker ps
som visar en lista över containrar som körs:
$ docker ps
Som du kan se i skärmdumpen ovan kördes det utan fel och på uppdrag av en normal användare.
För att testa Docker fullt ut kan du ladda ner en testbild från hello-world
för verifiering. För att göra detta måste du exekvera:
$ docker run hello-world
Kommandot docker run
kommer att ladda ner programvaruavbildningen från docker hub
online repository, det officiella lagringsregistret för programvaruavbildningar från Docker som används som standard, och automatiskt köra den. I exemplet visas frasen Hello
from Docker! vilket innebär att avbildningen har laddats ner och körts.