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.

Utilitaj Docker-komandoj

Komando Kion ĝi faras
docker compose up -d Startas ĉiuj servoj en la malantaŭgrundo
docker compose down Haltigas kaj forigas ĉiujn kontejnere
docker compose logs -f Sekvas la logojn en realtempo
docker compose pull Elŝutas la plej novan version de ĉiuj imagoj
docker compose restart Restartigas ĉiujn servojn
docker ps Montras rultantajn kontejnare

Volumoj: Konservu datumojn ekster la kontejneron

Kontejneroj estas provizoraj. Se vi fordeligas kontejneron, ĉio la enhavo malaperas. 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 kun ĝisdatigado de mane instalisita programaro, kie vi eble devas elŝuti, agordi, kaj esperi ke nenio rompiĝas.

Easy Tasko 1 - Agordu Nginx kun Docker Compose

Kreasu docker-compose.yml kiu rulumas Nginx-webservron:

  1. Kreu novan dosierujon kaj kreasu la dosieron docker-compose.yml
  2. Definu servon kun image: nginx:latest sur porte 80
  3. Rulumu docker compose up -d
  4. Vizitu http://localhost en la retumilo

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 definu plurajn servicojn en unu dosiero
  • La Compose-dosiero estas kaj konfiguro kaj dokumentado
  • Volumes konservas datumojn ekster la kontejnero, tiel ke ĝi postvivas restartigojn
  • Ĝiĝado de ĝisdatigo estas docker compose pull + docker compose up -d
  • Docker faciligas movi servicojn inter serviloj