Docker Compose sobib eriti hästi arendus- ja test­kesk­kon­da­desse, aga ka väik­se­mate toot­mis­kesk­kon­dade jaoks. Selgitame, kuidas saate Compose’i abil Docker-rakendusi Ubuntu kesk­kon­nas hõlpsasti koor­di­nee­rida.

Millised on Docker Compose’i nõuded Ubuntu ope­rat­sioo­ni­süs­tee­mis?

Enne Docker Compose’i ka­su­ta­mist peate veenduma, et teie süsteem vastab järg­mis­tele nõuetele:

  • Docker Engine: Compose on Docker Engine’i laiendus, mille peate ins­tal­lima.
  • Ope­rat­sioo­ni­süs­teem: Ubuntu, sudo-kasutaja root-õigustega.
Tip

Kui kasutate muud ope­rat­sioo­ni­süs­teemi kui Linux, vaadake meie juhendit Docker Compose’i ins­tal­li­mise kohta Windowsis ja Docker Compose’i ins­tal­li­mise kohta macOS-is.

Juhend Docker Compose’i pai­gal­da­miseks Ubuntu ope­rat­sioo­ni­süs­tee­mis

Et kasutada Docker Compose’i Ubuntu ope­rat­sioo­ni­süs­tee­mis, peate esmalt ins­tal­lima Docker Engine’i ja veenduma, et see töötab kor­ra­li­kult. Kui Docker töötab, laadige alla Compose ja looge YAML-fail oma ra­ken­duste kon­fi­gu­ree­ri­miseks.

1. samm: Lae alla ja ins­tal­leeri Docker Compose

Lae alla Docker Compose’i uusim versioon amet­li­kust GitHubi hoidlast, si­ses­ta­des terminali järgmise käsu:

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

Nüüd saate anda Docker Compose’ile käi­vi­tus­õi­gu­sed:

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

Kasutage valikut --version, et kont­rol­lida, kas Compose on edukalt ins­tal­li­tud.

$ docker-compose --version
shell

Saad järgmise väljundi:

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

Kui ins­tal­li­mine eba­õn­nes­tub, kont­rol­lige ka­ta­loo­gi­teed.

Võid luua ka süm­bo­li­linki kataloogi /usr/bin:

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

2. samm: Määra faili docker-compose.yml seaded

Docker Compose YAML-faili üles­ehi­tuse näi­ta­miseks kasutame kon­tei­ne­ri­kesk­konna jaoks amet­li­kust Docker Hubist pärit Nginx-pildi.

Esiteks loo oma ko­du­ka­ta­loo­gis uus kaust:

$ mkdir ~/compose-test
shell

Mine sellesse kataloogi ja loo uus kaust oma Nginx-keskkonna juur­ka­ta­loo­giks.

$ cd ~/compose-test
$ mkdir app
shell

Võid kasutada mis tahes teks­ti­re­dak­to­rit, näiteks nano, et luua fail index.html.

$ nano app/index.html
shell

Siin on näi­dis­lehe HTML-kood:

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

Salvesta ja sulge HTML-fail ning loo fail docker-compose.yml.

$ nano docker-compose.yml
shell

Sisu on jagatud kon­fi­gu­rat­siooni ver­sioo­ni­numbri ja teenuste plokiks.

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

Teenuste plokis on üks teenus nimega „web“. See on seotud määratud Nginx-pildiga ja pordi üm­ber­suu­na­mi­sega. Meie kon­fi­gu­rat­sioo­nis suu­na­takse kõik host-masina pordile 8000 saadetud päringud ümber pordile 80 asuvasse vee­bi­kon­tei­ne­risse, kus töötab Nginx. Lisaks kasutame hosti ja kon­tei­neri vahel jagatud mahtu. See muudab kohaliku kausta „app“ Nginx-ra­ken­dus­ele kät­te­saa­da­vaks

3. samm: Käivita Docker Compose

Järgmise käsuga loome vee­bi­kon­tei­neri ja käivitame selle taustal:

$ docker-compose up -d
shell

Kui YAML-failis määratud pilt puudub ko­ha­li­kust süs­tee­mist, laa­di­takse see au­to­maat­selt alla.

Et kont­rol­lida, kas Nginx-keskkond töötab, sisestage käsk ps.

$ docker-compose ps
shell

Varem loodud näi­dis­leht on nüüd kät­te­saa­dav aadressil localhost:8000, kui käivitad demo oma arvutis. Kui kasutad kaug­ser­ve­rit, märgi lihtsalt serveri IP-aadressi asemel „localhost“.

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

Saate kon­tei­ne­ri­ra­ken­duse peatada, kasutades stop.

$ docker-compose stop
shell
Go to Main Menu