Docker kiel aŭtomatigo

Skip to content

Ĉi tio estas maŝintradukita teksto kiu povas enhavi erarojn!

Docker simpligas la deplojon de aplikoj. Anstataŭ instali kaj konfiguri programaron mane sur servilo, vi difinas ĉion en konfigura dosieroj. La rezulto estas reproduktebla, portebla kaj rapida por starigi.

Kio estas Docker Compose?

Per Docker Compose vi difinas plurajn servojn en unu dosiero (docker-compose.yml). Ĉiu servo estas ujo kun sia propra konfiguracio.

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

Unu komando starigas ĉion:

docker compose up -d
# Starter tjenestene i bakgrunnen.
# Startas la servojn en la fono.

Ĉu vi bezonas transloĝi la servon al alia servilo? Kopiu la dosieron kaj ekzekutu la saman komandon. Ĉio estas identa.

Kial estas ĉi tio aŭtomatigo?

Penu pri la diferenco:

Manuala agordo Kun Docker Compose
Instalu Nginx manuale image: nginx:latest
Konfiguru la havenojn ports: "80:80"
Instalu Grafana manuale image: grafana/grafana:latest
Dokumentu ĉiujn paŝojn Ĉio estas dokumentita en la .yml-dosiero
Rekonstruu ĉion sur la sekva servilo docker compose up -d

La Docker Compose-dosiero estas la dokumentado. Ĝi precize priskribas kiuj servoj funkcias, kiujn havenojn ili uzas kaj kiel ili estas konfiguritaj.

Utile Docker-komandoj

Komando Kion ĝi faras
docker compose up -d Startas ĉiujn servojn en la fono
docker compose down Haligas kaj forigas ĉiujn ujojn
docker compose logs -f Sekvas la logojn en realtempa
docker compose pull Elŝutas la plej novan version de ĉiuj bildoj
docker compose restart Restartas ĉiujn servojn
docker ps Montras funciantajn ujojn

Volumoj: Konservu datumojn ekster la ujoj

Ujoj estas temporaj. Se vi forigas ujon, ĉiu enhavo malaperos. Por konservi datumojn ni uzas volumojn:

services:
  database:
    image: postgres:16
    ports:
      - "5432:5432"
    environment:
      POSTGRES_PASSWORD: hemmelig # Kaŝpasvorto por la datumbazo
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

Jen, la datumbazaj dosieroj estas konservataj en volumeno nomata db-data. Eĉ se vi forigas kaj rekreas la ujojn, la datumoj ankoraŭ estos tie.

Ĝisdatigo de Servoj

Ĝisdatigi Docker-servon estas simpla:

# Alprenu la plej novan version
docker compose pull

# Rekomencu kun la nova versio
docker compose up -d

Komparu tion ĉi kun la ĝisdatigo de manuele instalita programaro, kie vi eble devas elŝuti, konfiguri, kaj esperi ke nenio rompiĝas.

Easy Tasko 1 - Konfiguru Nginx kun Docker Compose

Kreu docker-compose.yml kiu ruligas Nginx-retejon:

  1. Kriu novan dosierujon kaj krei la dosieron docker-compose.yml
  2. Definu servon kun image: nginx:latest sur pordo 80
  3. Rulu docker compose up -d
  4. Vizitu http://localhost en la navigilo

Medium Tasko 2 - Aldonu Servon

Pli daŭrigi docker-compose.yml el tasko 1 per aldona servo. Ekzemple:

Startu ĉion per docker compose up -d kaj kontrolu, ke ambaŭ servoj funkcias samtempe.

Resumo

  • Docker Compose permesas al vi difini plurajn servojn en unu dosiero
  • La Compose-dosiero estas kaj konfiguracio kaj dokumentado
  • Volumoj konservas datumojn ekster la ujoj tiel ke ĝi postvivu reŝargojn
  • Ĝisdatigo estas docker compose pull + docker compose up -d
  • Docker faciligas la movadon de servoj inter serviloj