Natrag na blog

Kako instalirati i konfigurirati Docker Compose na Ubuntu 20.04

Kako instalirati i konfigurirati Docker Compose na Ubuntu 20.04

Uvod

Kontejnerizacija je uvelike dobila na zamahu u softverskom tehnološkom prostoru posljednjih godina. To se može pripisati Docker koji je platforma za kontejnerizaciju koja pojednostavljuje upravljanje procesima unutar kontejnera.

Kontejneri su lagana, virtualizirana, prijenosna, softverski definirana standardizirana okruženja koja omogućuju softveru da radi izolirano od drugog softvera koji se izvodi na fizičkom računalu domaćinu. Ova značajka prijenosnosti omogućuje razvojnim programerima da modulariziraju svoje aplikacije u izolirane usluge. Nadalje, mogu se posluživati neovisno, što ostavlja prostor za skaliranje.

Iako je podjela aplikacije na više usluga svakako izvrsna, ona dolazi s opterećenjem upravljanja s nekoliko kontejnera. Morate osigurati da oni komuniciraju, pokreću se i gase u isto vrijeme. Zahvaljujući alatu pod nazivom Docker Compose, to postaje lak zadatak. Docker Compose omogućuje razvojnim programerima pokretanje Docker aplikacija s više kontejnera koristeći pravila definirana u YAML datoteci. YAML datoteka sadrži definicije za usluge aplikacije i način na koji mogu dijeliti podatkovne volumene i mreže. Nakon što definirate usluge, možete ih sve pokrenuti jednom naredbom. U ovom vodiču, pokazat ćemo vam kako instalirati, konfigurirati i započeti s Docker Composeom na Ubuntu 20.04.

Preduvjeti

Korak 1: Instalacija Docker Composea

Preuzet ćemo najnoviju stabilnu verziju Docker Composea s njegovog službenog GitHub repozitorija. Najnoviju verziju možete saznati na stranici s izdanjima, u vrijeme pisanja ovog vodiča, najnovija verzija je 1.28.5.

Prvo se prijavite na svoj Ubuntu poslužitelj s ne-root sudo korisnikom i unesite sljedeću naredbu. Ona preuzima najnovije izdanje (1.28.5) i sprema izvršnu datoteku u /usr/local/bin/docker-compose direktorij. To ga čini globalno dostupnim kao docker-compose:

Nakon što se preuzme, unesite sljedeću naredbu za postavljanje odgovarajućih dopuštenja kako bi naredba docker-compose bila izvršna:

Sada provjerite je li instalacija uspjela i može li se naredba pozvati pokretanjem sljedeće naredbe:

Trebali biste dobiti izlaz poput ovog:

docker compose version

Ovo potvrđuje da je Docker Compose uspješno instaliran na vaš sustav.

Korak 2: Stvaranje docker-compose.yml datoteke

Kako bismo vam pomogli razumjeti kako raditi s docker-compose.yml, konfigurirat ćemo okruženje web poslužitelja koristeći službenu Nginx sliku s Docker Hub. Nakon što se postavi, trebali bismo moći posluživati osnovnu HTML stranicu iz kontejnera.

Stvorit ćemo naš radni direktorij u početnoj mapi iz koje ćemo raditi. Unesite sljedeću naredbu za stvaranje direktorija:

Zatim prijeđite u direktorij:

Nakon što uđete u direktorij, stvorite mapu aplikacije koja će biti korijenski direktorij dokumenata za Nginx okruženje. Ovu mapu možemo nazvati app:

  • Stvaranje HTML stranice

Upotrijebimo nano uređivač teksta za stvaranje index.html datoteke unutar mape app:

Zatim dodajte sljedeći HTML kôd u datoteku:

Da biste spremili datoteku, pritisnite CTRL +O, ENTER. Zatim zatvorite s CTRL +X. Sljedeće ćemo stvoriti docker-compose.yml datoteku unutar korijenskog direktorija našeg projekta.

  • Hostanje HTML stranice pomoću docker-composea

Zatim unesite sljedeću naredbu za otvaranje datoteke pomoću nano uređivača:

Nakon toga dodajte sljedeći isječak koda unutar datoteke:

Datoteka docker-compose.yml datoteka započinje brojem verzije koji govori Docker Composeu koju verziju konfiguracije koristimo. Slijedite ovu poveznicu kako biste saznali više o Docker Compose verzijama.

Nakon broja verzije, imamo blok usluga (services) koji sadrži usluge koje čine okruženje. U ovom vodiču naveli smo samo jednu uslugu pod nazivom webserver. webserver usluga koristit će nginx:alpine sliku. Također smo definirali preusmjeravanje portova 8000:80. To znači da će svi zahtjevi s porta 8000 na računalu domaćinu biti preusmjereni na webserver kontejner na portu 80, gdje se izvodi Nginx.

Direktiva volumes omogućuje vam stvaranje dijeljenog volumena između računala domaćina i kontejnera koji možemo koristiti za trajno spremanje podataka. U našem yml isječku koda, dijelimo lokalnu app mapu s kontejnerom. Unutar kontejnera, ona će biti postavljena na lokaciju /usr/share/nginx/html lokaciju. Stoga ona prepisuje zadani korijenski direktorij dokumenata (document root) za Nginx. Sada možete spremiti i zatvoriti datoteku.

Do ove točke stvorili ste svoju primjernu HTML web stranicu i datoteku docker-compose.yml s uputama za izgradnju kontejneriziranog okruženja web poslužitelja. Pogledajmo kako možemo pokrenuti ovo postavljanje u sljedećem koraku.

Korak 3: Izvršavanje naredbe Docker Compose

U ovom koraku pokrenut ćemo naredbu za pokretanje našeg kontejneriziranog okruženja. Ispod je jedinstvena naredba koja će pokrenuti proces preuzimanja Docker slika, stvoriti kontejner za uslugu webserver i pokrenuti kontejnerizirano okruženje u pozadini:

Docker je dizajniran da bude brz i učinkovit, pa kada pokrenete gornju naredbu, on najprije provjerava vaš lokalni sustav za definiranu sliku. Ako nedostaje, preuzet će je iz repozitorija Docker Hub. Trebao bi prikazati izlaz sličan ovome:

 compose up

Kada naredba završi s izvršavanjem, pokrenut će okruženje kontejnera koje radi u pozadini. Možete provjeriti radi li pomoću naredbe:

Trebali biste dobiti sličan izlaz:

 compose ps

Ako odete na IP adresu ili naziv domene vašeg poslužitelja i dodate port 8000, tj. server_domain_or_IP:8000 trebali biste moći vidjeti primjernu HTML stranicu koju smo stvorili:

docker compose webpage

Ako se sjećate, postavili smo dijeljeni volumen između kontejnera i host sustava. To održava datoteke u kontejneru sinkroniziranima s datotekama na host sustavu. Stoga, ako napravite promjenu u index.html datoteci, ona se automatski sinkronizira s kontejnerom i to se odražava kada ponovno učitate stranicu u pregledniku. Možete pokušati s uređivačem nano. Naučimo još neke naredbe u sljedećem koraku.

Korak 4: Dodatne naredbe Docker Compose za upravljanje okruženjima kontejnera

Sada kada ste uspješno postavili web stranicu pomoću jedne docker-compose-up naredbe, pogledajmo neke dodatne naredbe koje mogu biti korisne u upravljanju kontejneriziranim okruženjima.

Započet ćemo s naredbom logs. Zapisi (logs) mogu biti ključni kada rješavate probleme s neuspjehom rada vaše aplikacije. Prvo pokrenite sljedeću naredbu za pregled zapisa koje je stvorio Nginx kontejner:

Evo primjera izlaza zapisa:

 logs

Možete pauzirati izvršavanje okruženja bez promjene stanja kontejnera pomoću naredbe:

 compose pause

Zatim, za otkazivanje pauze ili nastavak izvršavanja koristite naredbu:

docker compose unpause

Možda ćete htjeti zaustaviti kontejnere bez uništavanja njihovih podataka. Da biste to učinili, upotrijebite sljedeću naredbu:

stop

Za uništavanje kontejnera, mreža i volumena povezanih s kontejneriziranim okruženjem, koristite naredbu:

docker compose down

Imajte na umu da prethodna naredba ne uklanja bazne slike koje Docker Compose koristi za pokretanje okruženja. To osigurava bržu izgradnju kada pokrenete svoje okruženje, jer provjerava lokalno računalo za podudarne slike. Ako želite potpuno ukloniti baznu sliku, morate je navesti u naredbi. Za naš primjer, možemo ukloniti nginx:alpine sliku pomoću naredbe:

 image remove

Naposljetku, više naredbi možete pronaći u službenoj Docker Compose Command-line reference dokumentaciji.

Zaključak

U ovom ste vodiču instalirali Docker Compose na Ubuntu 20.04, stvorili kontejnerizirano okruženje temeljeno na slici Nginx web poslužitelja i naučili kako upravljati različitim uslugama pomoću Docker Compose naredbi.

Ako želite naučiti kako implementirati stvarnu dinamičku aplikaciju koja ovisi o nekoliko kontejnera, pročitajte naš vodič o implementaciji Laravela, Nginxa i MySQL-a s Docker Composeom. Također možete pronaći potpuni popis docker-compose naredbi u službenoj Docker Compose dokumentaciji.

Ugodan rad!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.