Docker er en populær programvare for containerisering. Containere er en standard programvareenhet som pakker koden og alle dens avhengigheter slik at en applikasjon kan kjøres raskt og pålitelig på ulike operativsystemer og datamiljøer.
Teknisk sett er en container en kjørende prosess som er isolert fra andre prosesser og har tilgang til dataressurser. Nå skal vi se på hvordan vi installerer Docker i Debian 11 og kjører den første applikasjonen.
Det er to måter å installere på, ved å bruke standard Debian-depotene eller det offisielle Docker-depotet. Debian-lagrene inneholder ikke den nyeste versjonen, så la oss vurdere å installere fra det offisielle Docker-lageret.
Før du legger til depotet, må du oppdatere pakkelisten ved å kjøre kommandoen:
$ sudo apt update
Installer også tilleggspakker som er nødvendige for å arbeide med eksterne depoter. Kjør kommandoen for å installere disse pakkene:
$ sudo apt -y install ca-certificates curl gnupg lsb-release
Last deretter ned og legg til PGP-nøkkelen fra depotet. Dette gjør du ved å kjøre kommandoen:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
For å legge til depotet må du kjøre kommandoen:
$ 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
For å installere pakken må du først oppdatere pakkelistene slik at et nytt repository vises i systemet. Dette gjør du ved å kjøre kommandoen:
$ sudo apt update
Til slutt kan du installere flere pakker. Installasjonen gjøres ved hjelp av kommandoen:
$ sudo apt -y install docker-ce docker-ce-cli containerd.io
Ordet ce
i pakkenavnet docker-ce
står for community
, noe som betyr at gratisversjonen (også kalt community-versjonen) vil bli installert. Nå vet du hvordan du installerer docker debian.
Etter installasjonen vil programmet være slått av som standard. For å starte programmet må du kjøre kommandoen:
$ sudo systemctl start docker
For at det skal kunne kjøre med operativsystemet, må det legges til i autoladeren ved hjelp av kommandoen:
$ sudo systemctl enable docker
Som standard er det bare root-brukeren som kan bruke og utføre kommandoer i terminalen. Hvis du utfører en kommando fra en vanlig bruker, vil terminalen vise følgende feilmelding:
Fikk tillatelse nektet under forsøk på å koble til Docker-dæmonens 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
For å kjøre kommandoen som en vanlig bruker og uten å bruke sudo-kommandoen
, må du legge til brukeren i docker-gruppen
. Dockergruppen
opprettes automatisk under installasjonen. Hvis den av en eller annen grunn ikke opprettes automatisk, må den imidlertid opprettes manuelt ved å utføre følgende kommando:
$ sudo groupadd docker
Kjør deretter for å legge til den aktuelle brukeren i docker-gruppen:
$ sudo usermod -aG docker $USER
Variabelen $USER
betyr at den aktuelle brukeren, som økten startes på vegne av, vil bli lagt til i docker-gruppen
. Denne variabelen finnes i alle moderne Linux-distribusjoner. Det er også verdt å merke seg at docker-gruppen gir samme rettigheter som root-brukeren.
Etter at du har lagt til en bruker, er det nødvendig å logge på systemet på nytt, og først da kan du kjøre en hvilken som helst Docker-kommando
for testing. Som et eksempel ble kommandoen docker ps
kjørt, som viser en liste over containere som kjører:
$ docker ps
Som du kan se på skjermbildet ovenfor, ble den utført uten feil og på vegne av en vanlig bruker.
For å teste Docker fullt ut kan du laste ned et testbilde fra hello-world
for verifisering. For å gjøre dette må du kjøre:
$ docker run hello-world
Kommandoen docker run
laster ned programvareavbildningen fra docker hub
online repository, det offisielle registeret for lagring av programvareavbildninger fra Docker som brukes som standard, og kjører den automatisk. I eksemplet vises uttrykket Hello from Docker!
som betyr at avbildningen er lastet ned og kjørt.