Docker Compose er særligt velegnet til ud­vik­lings- og test­mil­jø­er, men også til mindre pro­duk­tions­in­stal­la­tio­ner. Vi forklarer, hvordan du nemt kan ko­or­di­ne­re Docker-ap­pli­ka­tio­ner på Ubuntu med Compose.

Hvad er kravene til Docker Compose på Ubuntu?

Inden du kan bruge Docker Compose, skal du sikre dig, at dit system opfylder følgende for­ud­sæt­nin­ger:

  • Docker Engine: Compose er en udvidelse til Docker Engine, som du skal in­stal­le­re.
  • Ope­ra­tiv­sy­stem: Ubuntu, sudo-bruger med root-ret­tig­he­der.
Tip

Hvis du bruger et andet ope­ra­tiv­sy­stem end Linux, kan du læse vores vej­led­ning i, hvordan du in­stal­le­rer Docker Compose på Windows og Docker Compose på macOS.

Trin-for-trin-vej­led­ning til in­stal­la­tion af Docker Compose på Ubuntu

For at kunne bruge Docker Compose på Ubuntu skal du først in­stal­le­re Docker Engine og kon­trol­le­re, at den kører korrekt. Når Docker kører, skal du downloade Compose og oprette en YAML-fil til kon­fi­gu­ra­tion af dine ap­pli­ka­tio­ner.

Trin 1: Download og installer Docker Compose

Download den nyeste version af Docker Compose fra det of­fi­ci­el­le GitHub-arkiv ved at indtaste følgende kommando i en terminal:

$ curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
shell

Nu kan du give Docker Compose kør­sels­ret­tig­he­der:

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

Brug indstil­ling --version til at kon­trol­le­re, om Compose er blevet in­stal­le­ret korrekt.

$ docker-compose --version
shell

Du får følgende resultat:

Billede: Docker Compose Version
If you see the version number, Docker Compose has been suc­ces­sful­ly installed.

Hvis in­stal­la­tio­nen mislykkes, skal du kon­trol­le­re stien.

Du kan også oprette et symbolsk link til stien /usr/bin:

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
shell

Trin 2: Kon­fi­gu­rer filen docker-compose.yml

For at il­lu­stre­re op­byg­nin­gen af en Docker Compose YAML-fil bruger vi Nginx-billedet fra den of­fi­ci­el­le Docker Hub til con­tai­ner­mil­jø­et.

Opret først en ny mappe i din hjem­me­map­pe:

$ mkdir ~/compose-test
shell

Skift til mappen, og opret en ny mappe til rodmappen i dit Nginx-miljø.

$ cd ~/compose-test
$ mkdir app
shell

Du kan bruge et hvilket som helst tek­stre­di­ge­rings­pro­gram, f.eks. nano, til at oprette index.html.

$ nano app/index.html
shell

Her er HTML-koden til en ek­sem­pelsi­de:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Docker Compose Test</title>
</head>
<body>
    <h1>This is a Docker Compose Test Page for an Nginx container.</h1>
</body>
</html>
html

Gem og luk HTML-filen, og opret filen docker-compose.yml.

$ nano docker-compose.yml
shell

Indholdet er opdelt i kon­fi­gu­ra­tio­nens ver­sions­num­mer og tje­ne­ste­af­snit­tet.

version: '3.9'
services:
    web:
        image: nginx:alpine
        ports:
            - "8000:80"
        volumes:
- ./app:/usr/share/nginx/html
YAML

I tje­ne­ste­blok­ken findes der en enkelt tjeneste ved navn »web«. Den er knyttet til det angivne Nginx-billede og po­r­tom­di­ri­ge­rin­gen. I vores kon­fi­gu­ra­tion om­di­ri­ge­res alle an­mod­nin­ger til port 8000 på vært­s­ma­ski­nen til webcon­tai­ne­ren på port 80, hvor Nginx kører. Derudover bruger vi et delt volumen mellem værten og con­tai­ne­ren. Dette gør den lokale »app«-mappe til­gæn­ge­lig for Nginx-ap­pli­ka­tio­nen

Trin 3: Kør Docker Compose

Med følgende kommando opretter vi en webcon­tai­ner og kører con­tai­ner­mil­jø­et i bag­grun­den:

$ docker-compose up -d
shell

Hvis den billedfil, der er angivet i YAML-filen, ikke findes på det lokale system, down­lo­a­des den au­to­ma­tisk.

For at kon­trol­le­re, om Nginx-miljøet kører, skal du indtaste kom­man­do­en ps.

$ docker-compose ps
shell

Den ek­sem­pelsi­de, du oprettede tidligere, kan nu åbnes på localhost:8000, når du kører demoen på din computer. Hvis du bruger en ekstern server, skal du blot angive serverens IP-adresse i stedet for »localhost«.

Billede: Docker Compose sample page
Sample page for an Nginx container

Du kan stoppe container-ap­pli­ka­tio­nen ved hjælp af stop.

$ docker-compose stop
shell
Gå til ho­ved­me­nu­en