Docker Compose je še posebej primeren za razvojna in testna okolja, pa tudi za manjše pro­duk­cij­ske na­me­sti­tve. Razložimo vam, kako lahko z Composeom enostavno uskla­ju­je­te apli­ka­ci­je Docker na Ubuntu.

Kakšne so zahteve za Docker Compose v sistemu Ubuntu?

Preden lahko začnete upo­ra­blja­ti Docker Compose, morate preveriti, ali vaš sistem iz­pol­nju­je naslednje pogoje:

  • Docker Engine: Compose je raz­ši­ri­tev za Docker Engine, ki jo morate namestiti.
  • Ope­ra­cij­ski sistem: Ubuntu, uporabnik sudo s pri­vi­le­gi­ji root.
Tip

Če želite upo­ra­blja­ti drug ope­ra­cij­ski sistem kot Linux, si oglejte naš vodnik o na­me­sti­tvi Docker Compose v sistemu Windows in Docker Compose v sistemu macOS.

Podroben vodnik za na­me­sti­tev Docker Compose v sistemu Ubuntu

Če želite upo­ra­blja­ti Docker Compose v sistemu Ubuntu, morate najprej namestiti Docker Engine in preveriti, ali deluje pravilno. Ko Docker deluje, prenesite Compose in ustvarite datoteko YAML za kon­fi­gu­ra­ci­jo svojih aplikacij.

Korak 1: Prenesite in namestite Docker Compose

Naj­no­vej­šo različico Docker Compose prenesite iz uradnega re­po­zi­to­ri­ja GitHub tako, da v terminalu vnesete naslednji ukaz:

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

Sedaj lahko dodelite pravice za izvajanje Docker Compose:

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

Uporabite možnost --version, da preverite, ali je bil program Compose uspešno nameščen.

$ docker-compose --version
shell

Prikazal se bo naslednji izpis:

Image: Docker Compose Version
If you see the version number, Docker Compose has been success­ful­ly installed.

Če na­me­sti­tev ni uspela, preverite pot.

Prav tako lahko ustvarite sim­bo­lič­no povezavo do poti /usr/bin:

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

Korak 2: Nastavite datoteko docker-compose.yml

Da bi prikazali, kako je se­sta­vlje­na datoteka YAML za Docker Compose, za okolje kon­tej­ner­ja upo­ra­blja­mo sliko Nginx iz uradnega Docker Hub-a.

Najprej ustvarite novo mapo v svojem domovskem imeniku:

$ mkdir ~/compose-test
shell

Pre­klo­pi­te v ta imenik in ustvarite novo mapo za korenski imenik vašega okolja Nginx.

$ cd ~/compose-test
$ mkdir app
shell

Za ustvar­ja­nje datoteke index.html lahko uporabite kateri koli ure­je­val­nik besedil, na primer nano.

$ nano app/index.html
shell

Tukaj je HTML-koda za vzorčno stran:

<!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

Shranite in zaprite datoteko HTML ter ustvarite datoteko docker-compose.yml.

$ nano docker-compose.yml
shell

Vsebina je raz­de­lje­na na številko različice kon­fi­gu­ra­ci­je in blok storitev.

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

V sklopu storitev je ena sama storitev z imenom »web«. Ta je povezana z določeno sliko Nginx in pre­u­sme­ri­tvi­jo vrat. V naši kon­fi­gu­ra­ci­ji se vsa zahtevka, poslana na vrata 8000 na go­sti­telj­skem ra­ču­nal­ni­ku, pre­u­sme­ri­jo v spletni kontejner na vratih 80, kjer teče Nginx. Poleg tega upo­ra­blja­mo skupni volumen med go­sti­te­ljem in kon­tej­ner­jem. S tem je lokalna mapa »app« dostopna apli­ka­ci­ji Nginx

Korak 3: Izvedba Docker Compose

Z na­sle­dnjim ukazom ustvarimo spletni kontejner in zagnamo okolje kon­tej­ner­ja v ozadju:

$ docker-compose up -d
shell

Če slika, navedena v datoteki YAML, ni prisotna v lokalnem sistemu, se bo samodejno prenesla.

Če želite preveriti, ali okolje Nginx deluje, vnesite ukaz ps.

$ docker-compose ps
shell

Vzorec strani, ki ste ga ustvarili prej, je zdaj dostopen na naslovu localhost:8000, ko na svojem ra­ču­nal­ni­ku zaženete pred­sta­vi­tev. Če upo­ra­blja­te oddaljeni strežnik, namesto »localhost« preprosto vnesite IP-naslov svojega strežnika.

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

Apli­ka­ci­jo v kon­tej­ner­ju lahko ustavite s pomočjo stop.

$ docker-compose stop
shell
Go to Main Menu