Docker automatisointina

Skip to content

Tämä on konekäännetty teksti, joka saattaa sisältää virheitä!

Docker yksinkertaistaa sovellusten käyttöönottoa. Sen sijaan, että asentaisit ja konfiguroisit ohjelmiston manuaalisesti palvelimelle, määrittelet kaiken konfiguraatiotiedostoissa. Tuloksena on toistettava, siirrettävä ja nopea asennus.

Mikä on Docker Compose?

Docker Composella määrittelet useita palveluita yhdessä tiedostossa (docker-compose.yml). Jokainen palvelu on kontti omalla konfiguraatiollaan.

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"

Yksi komento asettaa kaiken:

docker compose up -d
# Starter tjenestene i bakgrunnen.
# Käynnistää palvelut taustalla.

Tarvitsetko siirtää palvelun toiselle palvelimelle? Kopioi tiedosto ja suorita sama komento. Kaikki on identtistä.

Miksi tämä on automatisointia?

Mieti eroa:

Manuaalinen asennus Docker Composen kanssa
Asenna Nginx manuaalisesti image: nginx:latest
Konfiguroi portit ports: "80:80"
Asenna Grafana manuaalisesti image: grafana/grafana:latest
Dokumentoi kaikki vaiheet Kaikki on dokumentoitu .yml-tiedostossa
Toista kaikki seuraavalla palvelimella docker compose up -d

Docker Compose -tiedosto on dokumentaatio. Se kuvaa tarkasti, mitkä palvelut ovat käynnissä, mitä portteja ne käyttävät ja miten ne on konfiguroitu.

Hyödyllisiä Docker-komentoja

Komento Mitä se tekee
docker compose up -d Käynnistää kaikki palvelut taustalla
docker compose down Pysäyttää ja poistaa kaikki kontit
docker compose logs -f Seuraa lokeja reaaliajassa
docker compose pull Hakee uusimman version kaikista imageista
docker compose restart Käynnistää kaikki palvelut uudelleen
docker ps Näyttää käynnissä olevat kontit

Volumes: Tallenna dataa kontainerin ulkopuolelle

Kontainerit ovat tilapäisiä. Jos poistat kontainerin, kaikki sen sisältö katoaa. Säilyttääksemme dataa käytämme volumeja:

services:
  database:
    image: postgres:16
    ports:
      - "5432:5432"
    environment:
      POSTGRES_PASSWORD: hemmelig
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

Tässä tietokantatiedostot tallennetaan nimellä db-data olevaan volyymiin. Vaikka poistaisit ja luot uudelleen kontainerin, tiedot säilyvät silti.

Palveluiden päivittäminen

Docker-palvelun päivittäminen on helppoa:

# Hae uusin versio
docker compose pull

# Käynnistä uudelleen uudella versiolla
docker compose up -d

Vertaa tätä manuaalisesti asennettavan ohjelmiston päivittämiseen, jossa saatat joutua lataamaan, määrittämään ja toivomaan, ettei mikään mene rikki.

Easy Tehtävä 1 – Asenna Nginx Docker Composen avulla

Luo docker-compose.yml, joka käynnistää Nginx-web-palvelimen:

  1. Luo uusi kansio ja luo tiedosto docker-compose.yml
  2. Määrittele palvelu käyttäen image: nginx:latest portissa 80
  3. Suorita docker compose up -d
  4. Vieraile osoitteessa http://localhost selaimessa

Medium Tehtävä 2 – Lisää palvelu

Laajenna docker-compose.yml -tiedostoa tehtävästä 1 yhdellä lisäpalvelulla. Esimerkiksi:

Käynnistä kaikki komennolla docker compose up -d ja varmista, että molemmat palvelut toimivat samanaikaisesti.

Yhteenveto

  • Docker Compose antaa sinun määritellä useita palveluita yhteen tiedostoon
  • Compose-tiedosto on sekä konfiguraatio että dokumentaatio
  • Volyymit tallentavat dataa konttien ulkopuolelle, jotta se säilyy uudelleenkäynnistyksissä
  • Päivitys on docker compose pull + docker compose up -d
  • Docker tekee palveluiden siirtämisestä palvelimien välillä helppoa