Docker tutorial 1 – Kom godt igang med Docker

I denne startguide vil du kunne læse om hvad Docker er, og hvordan du kommer godt igang med Docker på din server.

De seneste år er Docker blevet mere og mere populært, også ift. webapplikationer på en server. Mange kender til muligheden for at lave websider på webhoteller, men med Docker kan man udvide de muligheder så webapplikationerne bliver mere avancerede, og så de bliver lettere at håndtere. I denne tutorial vil vi komme omkring hvad Docker er, hvordan du bruger det og vil også se en række eksempler. Der vil løbende komme flere artikler i denne tutorial. I denne første artikel skal vi se på hvad Docker er, og så skal vi se på nogle helt basale kommandoer du skal bruge ift. Docker.

Her kan du se en liste over de afsnit af denne tutorial der er skrevet og hvilke der er planlagt:

  1. Kom godt igang med Docker
  2. Basale koder til Docker

Hvad er Docker?

Docker er et eksempel på webapplikationer der kører i såkaldte containere. Du kender sikkert til virtuelle maskiner hvor man kører et helt operativsystem virtuelt, og således kan køre mange forskellige virtuelle maskiner på samme computer. Her er den enkelte virtuelle maskine helt isoleret fra resten af computeren og de andre virtuelle maskiner. Det er op samme måde containere fungerer. Inde i den container er der ikke bare selve den app du gerne vil køre, men også i princippet alt hvad der kræver for at kunne køre den app. Til forskel fra virtuelle maskiner indeholder en container dog ikke et helt operativsystem, men alt andet der kræver for at kunne køre en app.

Et eksempel kan være WordPress, som du sikkert er vant til at man kan installere i et webhotel. Det kan du også installere i en container med Docker, og i den container findes ikke kun WordPress, men også i princippet den MySQL database som det kræver for at WordPress fungerer.

Der er store fordele ved at køre webapplikationer i containere. Dels giver det en mindre risiko for at det at du installerer noget nyt smadrer resten af dit system. Det hele er nemlig isoleret inde i containeren, og hvis den ikke virker, så kan man bare fjerne den igen. Dels gør det det nemt at installere, fordi en del af alt det der kræves for at installere er automatiseret. Og dels gør det det nemt at opdatere.

Docker er et eksempel på en teknologi hvor du kan installere webapps i containere. Det er open source og meget udbredt, så i dag findes stort set alle webapps som Docker containere.

Hvad er Docker images, containers og volumes?

Der er også nogle forskellige begreber du skal kende til når du arbejder med Docker. Dem skal vi lige have kigget på her også.

Docker images er en slags opskrift eller instruktion til hvordan en Docker app skal køre. Et image kan du dele med en anden person, og så har den person alt hvad de skal bruge for selv at kunne køre den Docker app.

Docker containere er noget du bygger ud fra et image, og det er en installering eller kørsel af et Docker image. Når man bygger en container tager man derfor udgangspunkt i et Docker image, og udfra denne laver man en container, og så er du klar til at køre det program. En Docker container indeholder ligesom imaget alt hvad du skal bruge for at kunne køre det program. Dvs. det indeholder ikke kun selve programmet, men også alle de andre programmer som den er afhængig af. Vi har allerede nævnt et eksempel på en WordPress container, der i såfald også vil indeholde webserveren, PHP, MySQL osv. En container indeholder ikke operativsystemet, så ville det være en virtuel maskine i stedet for.

Docker volumes er en måde at gemme data på fra Docker containere, sådan så at de også er der når containeren starter. Som udgangspunkt starter en Docker container på en frisk hver gang den starter, og det betyder at alle de ændringer du har lavet i programmet er tabt. Derfor laver man et volume, hvor de data der gemmes inde i Docker containeren er koblet til et volume som ligger på værtsmaskinen, således at dataene bliver genindlæst når Docker containeren starter igen.

Hvad er Docker Compose?

Docker Compose er en udvidelse til Docker Engine, hvor du kan installere Docker images ved at bruge såkaldte Docker compose filer. Med Docker compose filer vedhæfter du en fil med noget kode der fortæller hvilke porte der skal være åben, hvilke volumes der skal oprettes osv. Altså en del af de indstillinger der findes til Docker.

Du bør have både Docker Engine og Docker Compose installeret. Nedenunder kan du se hvordan du installerer Docker compose. Men hvis du bruger Docker præinstalleret på fx. Digitalocean eller Hetzner, så er det faktisk ikke Docker Compose der er installeret, men derimod Docker Compose plugin. Det gør kun den forskel, at i stedet for at skrive docker-compose i koderne skal du skrive docker compose.

Hvad kræver det for at køre Docker

For at køre Docker er det eneste det kræver en server eller VPS, hvor du kan installere Docker. Jeg har fx. købt en VPS fra Digitalocean, som jeg bruger til at teste Docker applikationer.

Man kan faktisk også installere Docker direkte i dit operativsystem, fx. i Windows. Det betyder at du kan køre og åbne Docker containere direkte i Windows. Det betyder at webapplikationer rykker sig fra ikke kun at køre i en browser, men også i et operativsystem.

I denne artikel vil vi fokusere på Docker på servere eller VPS. Vi vil altså ikke fokusere på den mulighed at du også kan installere Docker på operativsystemer. Vi vil nemlig gerne fokusere på at bruge Docker til at lave websider med, som en videreudvikling af det du kender fra websider der kører på webhoteller.

Sådan installerer du Docker

For at installere Docker skal du altså først have en server eller VPS, hvor Linux er installeret. Jeg tager i denne tutorial udgangspunkt i at det er Ubuntu Server der er installeret, idet det er en af de mest udbredte linuxdistributioner der findes. Hvis du vælger Debian vil det samme typisk virke.

Du kan vælge at lave en droplet på Digitalocean hvor Ubuntu Server er præinstalleret, og så installere Docker ved hjælp af nedenstående koder i terminalen. Som alternativ kan du dog også vælge at lave en droplet på Digitalocean, hvor Docker allerede er præinstalleret.

Når du har en VPS eller server med Ubuntu server, er det første du skal gøre at opdatere systemet. Indtast følgende i terminalen.

sudo apt update

Nu skal du installere nogle ting, der gør det muligt at hente pakker over HTTPS.

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Så skal du installere en GPG nøgle for det officielle Docker repository:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Tilføj nu Docker repository til APT kilderne:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Så er du klar til at installere Docker. Det gør du med denne kode:

sudo apt install docker-ce

For at være sikker på at Docker kører, kan du bruge denne kode. Her skulle Docker service gerne stå som aktiv.

sudo systemctl status docker

Sådan installerer du Docker compose

Udover Docker er der også et andet program der er nødvendig at installere, et hedder Docker compose. Hvis du vælger den droplet fra Digitalocean hvor Docker er præinstalleret er Docker compose også allerede installeret. Først henter vi den nyeste version af Docker compose (her version 1.29.2):

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Så skal vi have tilladelserne på plads til at kunne køre Docker compose:

sudo chmod +x /usr/local/bin/docker-compose

For at bekræfte at Docker compose er installeret, bruger du denne kode.

docker-compose --version

Installer Docker compose plugin

Nogle foretrækker at bruge Docker compose plugin i stedet for Docker compose. Den installerer du på følgende måde:

sudo apt-get update
sudo apt-get install docker-compose-plugin

Du bekræfter Docker compose plugin er installeret med følgende:

docker compose version

I denne tutorial har vi set på hvad Docker er for noget, hvordan du installerer det i en VPS eller anden server hvor Ubuntu server kører og hvordan du installerer Docker compose. I næste afsnit vil vi se på hvordan du bruger Docker i terminalen. Hvis du ellers har nogle spørgsmål til Docker er du meget velkommen til at skrive dem i kommentarerne nedenunder.

5 1 vote
Article Rating

Andreas Andersen

Forfatter og grundlægger af IT-blogger.dk, der har blogget om IT-emner siden 2012. Findes på Mastodon på @aphandersen@ansico.dk

You may also like...

Abonner
Giv besked ved
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x