Docker Compose sopii erityisen hyvin kehitys- ja tes­tausym­pä­ris­töi­hin, mutta myös pie­nem­piin tuo­tan­to­käyt­töön­ot­toi­hin. Kerromme, kuinka voit helposti hallita Docker-so­vel­luk­sia Ubuntussa Compose-työkalun avulla.

Mitkä ovat Docker Compose -so­vel­luk­sen vaa­ti­muk­set Ubuntu-käyt­tö­jär­jes­tel­mäs­sä?

Ennen kuin voit käyttää Docker Composea, sinun on var­mis­tet­ta­va, että jär­jes­tel­mä­si täyttää seuraavat edel­ly­tyk­set:

  • Docker Engine: Compose on Docker Engineen tar­koi­tet­tu laajennus, joka on asen­net­ta­va.
  • Käyt­tö­jär­jes­tel­mä: Ubuntu, sudo-käyttäjä, jolla on pää­käyt­tä­jän oikeudet.
Vinkki

Jos käytät muuta käyt­tö­jär­jes­tel­mää kuin Linuxia, katso ohjeemme Docker Composen asen­ta­mi­ses­ta Win­dow­siin ja Docker Composen asen­ta­mi­ses­ta macOS:iin.

Vai­heit­tai­nen opas Docker Composen asen­ta­mi­seen Ubuntuun

Jotta voit käyttää Docker Composea Ubuntussa, sinun on ensin asen­net­ta­va Docker Engine ja var­mis­tet­ta­va, että se toimii oikein. Kun Docker on käynnissä, lataa Compose ja luo YAML-tiedosto so­vel­lus­ten mää­rit­tä­mis­tä varten.

Vaihe 1: Lataa ja asenna Docker Compose

Lataa Docker Composen uusin versio vi­ral­li­ses­ta GitHub-ar­kis­tos­ta kir­joit­ta­mal­la seuraava komento ter­mi­naa­liin:

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

Nyt voit myöntää Docker Compose -so­vel­luk­sel­le suo­ri­tusoi­keu­det:

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

Tarkista vaih­toeh­dol­la --version, onko Compose asennettu on­nis­tu­nees­ti.

$ docker-compose --version
shell

Saat seuraavan tuloksen:

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

Jos asennus epä­on­nis­tuu, tarkista polku.

Voit myös luoda sym­bo­li­sen linkin polkuun /usr/bin:

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

Vaihe 2: Määritä docker-compose.yml-tiedosto

Esi­merk­ki­nä Docker Compose -YAML-tiedoston ra­ken­tees­ta käytämme kont­tiym­pä­ris­tös­sä vi­ral­li­sel­ta Docker Hubilta ladattua Nginx-kuvaa.

Luo ensin uusi kansio ko­ti­ha­ke­mis­too­si:

$ mkdir ~/compose-test
shell

Siirry kyseiseen ha­ke­mis­toon ja luo uusi kansio Nginx-ym­pä­ris­tö­si juu­ri­ha­ke­mis­toon.

$ cd ~/compose-test
$ mkdir app
shell

Voit luoda index.html-tiedoston millä tahansa teks­tie­di­to­ril­la, kuten nanolla.

$ nano app/index.html
shell

Tässä on esi­merk­ki­si­vun HTML-koodi:

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

Tallenna ja sulje HTML-tiedosto ja luo docker-compose.yml-tiedosto.

$ nano docker-compose.yml
shell

Sisältö on jaettu kon­fi­gu­raa­tion ver­sio­nu­me­roon ja pal­ve­luo­siin.

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

Pal­ve­luo­sios­sa on yksi palvelu nimeltä ”web”. Se on liitetty mää­ri­tet­tyyn Nginx-kuvaan ja portin uu­del­lee­noh­jauk­seen. Mää­rit­te­lys­säm­me kaikki isän­tä­ko­neen porttiin 8000 lähetetyt pyynnöt ohjataan portissa 80 toimivaan web-konttiin, jossa Nginx on käynnissä. Lisäksi käytämme isän­tä­ko­neen ja kontin välistä jaettua levytilaa. Tämän ansiosta Nginx-sovellus pääsee käsiksi pai­kal­li­seen ”app”-kansioon

Vaihe 3: Suorita Docker Compose

Seu­raa­val­la ko­men­nol­la luomme verk­ko­kon­tin ja käyn­nis­täm­me kont­tiym­pä­ris­tön taustalla:

$ docker-compose up -d
shell

Jos YAML-tie­dos­tos­sa mää­ri­tet­tyä kuvaa ei löydy pai­kal­li­ses­ta jär­jes­tel­mäs­tä, se ladataan au­to­maat­ti­ses­ti.

Voit tarkistaa, onko Nginx-ympäristö käynnissä, antamalla komennon ps.

$ docker-compose ps
shell

Aiemmin luomasi esi­merk­ki­si­vu on nyt käy­tet­tä­vis­sä osoit­tees­sa localhost:8000, kun suoritat esittelyn omalla ko­neel­la­si. Jos käytät etä­pal­ve­lin­ta, määritä pal­ve­li­me­si IP-osoite sanan ”localhost” sijaan.

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

Voit pysäyttää kont­ti­so­vel­luk­sen käyt­tä­mäl­lä stop.

$ docker-compose stop
shell
Siirry pää­va­lik­koon