Uvod
Docker je platforma koja olakšava pokretanje i upravljanje procesima aplikacija u kontejnerima. Omogućuje odvajanje vaših aplikacija od vaše infrastrukture. Kontejneri su vrlo slični virtualnim strojevima, ali su prenosiviji, učinkovitiji i jednostavniji za korištenje. Postoje različiti načini instalacije Dockera na Linux distribucijama. Najpopularniji i najjednostavniji način instalacije Dockera na postojeći operacijski sustav je korištenjem yum naredbi.
Ovaj vodič će pokazati kako možete postaviti i koristiti Docker na CentOS 7 u nekoliko jednostavnih koraka.
Preduvjeti:
- 64-bitni CentOS 7 instanca.
- Korisnik koji nije root sa sudo privilegijama.
Sve naredbe koje izvršavate u ovom vodiču pokreću se kao korisnik koji nije root, a ako je potrebno, pristup rootu bit će omogućen pomoću ključne riječi sudo.
Korak 1: Postavljanje Dockera na CentOS 7 instanci
Službeno CentOS 7 spremište možda nema najnoviji instalacijski paket za Docker. U ovom odjeljku instalirat ćete najnoviju verziju Dockera iz službenog Docker spremišta. Prvo morate ažurirati bazu podataka paketa pomoću:
|
1 |
sudo yum check-update |
Nakon što je korak ažuriranja dovršen, pokrenite donju naredbu za preuzimanje i instalaciju najnovije verzije Dockera:
|
1 |
curl -fsSL https://get.docker.com/ | sh |
Docker je sada instaliran, stoga možete pokrenuti Docker daemon pokretanjem donje naredbe:
|
1 |
sudo systemctl start docker |
Da biste provjerili radi li Docker daemon, upišite sljedeće:
|
1 |
sudo systemctl status docker |
Izlaz naredbe systemctl status trebao bi biti sličan dolje podijeljenom izlazu, koji pokazuje da radi:
|
1 2 3 4 5 6 |
Izlaz: ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2021-02-17 18:22:06 UTC; 10s ago Docs: https://docs.docker.com Main PID: 21884 (dockerd) |
Na kraju, kako biste osigurali da se Docker pokreće prilikom ponovnog pokretanja računala, upotrijebite naredbu:
|
1 |
sudo systemctl enable docker |
Instalacija Dockera pruža vam Docker uslugu kao i klijentski alat (Docker klijent naredbenog retka). U sljedećim odjeljcima vodiča moći ćete steći više praktičnog iskustva koristeći Docker naredbe.
Također možete pogledati naš detaljni vodič o tome kako instalirati & upravljati Dockerom na Ubuntuu u javnom oblaku.
Korak 2: Korištenje Docker naredbi bez sudo prefiksa
Docker naredbe zahtijevaju root privilegije za pokretanje. Stoga, ako želite pokrenuti naredbe, morat ćete im dodati prefiks sudo. Tijekom instalacije, Docker grupa se kreira prema zadanim postavkama. Ako dodate korisnika u grupu, možete pokretati Docker naredbe bez sudo. Pokušaj pokretanja Docker naredbi bez sudo ili bez dodavanja korisnika u grupu rezultirat će izlazom sličnim onome u nastavku:
|
1 2 3 |
Izlaz: docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?. See 'docker run --help'. |
Dodavanje vašeg korisničkog imena u Docker grupu osigurat će da ne morate koristiti sudo za pokretanje Docker naredbi:
|
1 |
sudo usermod -aG docker $(whoami) |
Da biste dodali drugog korisnika u Docker grupu, možete jednostavno zamijeniti korisničko ime u naredbi:
|
1 |
sudo usermod -aG docker username |
Za ostatak ovog vodiča pretpostavit ćemo da sve naredbe izvršava korisnik u Docker korisničkoj grupi. Ako to nije slučaj, možete koristiti prefiks sudo s naredbama.
Korak 3: Izvršavanje Docker naredbi
Sada kada imate instaliran i pokrenut Docker, pogledajmo neke naredbe kako biste se upoznali s Docker uslužnim programom naredbenog retka. Docker naredbe obično imaju sljedeći oblik:
|
1 |
docker [opcija] [naredba] [argumenti] |
Da biste pronašli sve dostupne podnaredbe, trebate koristiti:
|
1 |
docker |
Od Docker 20.10.3, potpuni popis dostupnih podnaredbi uključuje:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Izlaz: attach Prikvači lokalni standardni ulaz, izlaz, i tokove pogrešaka tokove na jedan pokrenuti kontejner build Izgradi jednu sliku iz jednog Dockerfile-a commit Stvori jednu novu sliku iz promjena kontejnera's changes cp Kopiraj datoteke/mape između kontejnera i lokalnog datotečnog sustava create Stvori novi kontejner diff Pregledaj promjene datoteka ili direktorija u datotečnom sustavu kontejneras filesystem events Dohvati događaje u stvarnom vremenu s poslužiteljaserver exec Pokreni jednu naredbu u pokrenutom kontejnerucontainer export Izvezi datotečni sustav'kontejnera kao tar arhivu tar archive history Prikaži povijest slikeof an image images Prikaži popis slika import Uvezi sadržaj iz tarballa za stvaranje slike datotečnog sustava filesystem image info Prikaži informacije -o cijelom sustavu inspect Vrati informacije -niske razine o Docker objektima kill Prisilno zaustavi jedan ili više pokrenutih kontejnera load Učitaj sliku iz tar arhive ili STDIN-aili STDIN login Prijavi se u Docker registarregistry logout Odjavi se iz Docker registraregistry logs Dohvati zapise kontejneraof a container pause Privremeno zaustavi sve procese unutar jednog ili višekontejneri port Popis preslikavanja portova ili a određenog preslikavanja za the kontejner ps Popis kontejnera pull Preuzmi an sliku ili a repozitorij iz a registra push Pošalji an sliku ili a repozitorij u a registar rename Preimenuj a kontejner restart Ponovno pokreni jedan ili više kontejnera rm Ukloni jedan ili više kontejnera rmi Ukloni jednu ili više slika run Pokreni a naredbu u a novom kontejneru save Spremi jednu ili više slika u a tar arhivu (koja se struji na STDOUT prema zadanim postavkama) search Pretraži the Docker Hub za slike start Pokreni jedan ili više zaustavljenih kontejnera stats Prikaži a uživo tijek statistike korištenja (resursa ) kontejnerausage statistics stop Zaustavi jedan ili više pokrenutih kontejnera tag Izradi a oznaku TARGET_IMAGE koja se odnosi na SOURCE_IMAGE top Prikaži the pokrenute procese of a kontejnera unpause Nastavi sve procese unutar jednog ili više kontejnera update Ažuriraj konfiguraciju of jednog ili više kontejnera version Prikaži the informacije o verziji Dockera wait Blokiraj dok se jedan ili više kontejnera ne zaustavi, , a zatim ispiši njihove izlazne kodove |
Možete koristiti zastavicu –help s određenom naredbom kako biste dobili više informacija o njoj:
|
1 |
docker subcommand --help |
Za detaljne informacije o sustavu koristite:
|
1 |
docker info |
Korak 4: Rad s Docker slikama
Docker slike se mogu nazvati nacrtom za Docker kontejnere. Te se slike obično preuzimaju s Docker Huba, što je registar kojim upravlja projekt Docker. Svatko može stvoriti i poslati svoje slike na Docker Hub. Kao rezultat toga, u registru možete lako pronaći širok izbor aplikacija i distribucija operacijskih sustava. Isprobajmo jednostavan program koji će potvrditi pristup Docker Hubu:
|
1 |
docker run hello-world |
Trebali biste dobiti izlaz kao u nastavku, koji pokazuje da Docker radi:
|
1 2 3 4 |
Izlaz: Hello from Docker! Ova poruka pokazuje da se čini da vaša instalacija radi ispravno. ... |
Možete pronaći razne Docker slike na Docker Hubu pomoću naredbe za pretraživanje. Na primjer, pogledajte donju naredbu za pretraživanje CentOS slike:
|
1 |
docker search centos |
Upit za pretraživanje prikazat će popis svih slika koje se podudaraju s podnizom. U vašem slučaju izlaz bi trebao biti poput:
|
1 2 3 4 5 6 7 8 |
Izlaz: NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos Službena verzija CentOS-aof CentOS. 6410 [OK] ansible/centos7-ansible Ansible on Centos7 132 [OK] consol/centos-xfce-vnc Centos kontejner s "headless" VNC sess… 125 [OK] jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repozitoriji… 117 [OK] centos/systemd systemd omogućen bazni kontejner. 96 [OK] ... |
U rezultatima pretraživanja postoje različiti stupci koji opisuju informacije o slici. OK u stupcu OFFICIAL određuje da je sliku izradila i podržala tvrtka koja stoji iza aplikacije. Nakon što finalizirate sliku, možete je preuzeti na svoje lokalno računalo pomoću naredbe Docker pull:
|
1 |
docker pull centos |
Nakon preuzimanja slike, možete pokrenuti kontejner pomoću naredbe Docker run. Ako izravno pokušate pokrenuti sliku bez prethodnog preuzimanja, Docker će preuzeti sliku i nakon toga pokrenuti kontejner:
|
1 |
docker run centos |
Možete izlistati slike koje su preuzete na vaše lokalno računalo pomoću donje naredbe:
|
1 |
docker images |
Trebali biste dobiti sličan izlaz:
|
1 2 3 4 |
Izlaz: REPOSITORY TAG IMAGE ID KREIRANO VELIČINA centos latest 300e315adb2f 2 mjeseca prije 209MB hello-world latest bf756fb1ae65 13 mjeseci prije 13.3kB |
Kasnije u ovom vodiču moći ćete modificirati slike za pokretanje kontejnera. Ove nove slike mogu se dodati ili poslati (push) na Docker Hub i druge registre koji udomljuju Docker slike.
Korak 5: Interaktivno pokretanje kontejnera
Postoje različite vrste kontejnera. Kontejner hello-world koji ste pokrenuli u Koraku 4 vrsta je kontejnera koji se pokreće i gasi nakon što ispiše poruku. Druga vrsta kontejnera je interaktivni kontejner. Interaktivne kontejnere možete koristiti na sličan način kao i virtualno računalo.
Stvorimo kontejner iz najnovije CentOS slike. Korištenje zastavica -i i -t u naredbi Docker run omogućit će interaktivan pristup CentOS kontejneru:
|
1 |
docker run -it centos |
Naredbeni redak će se promijeniti i trebao bi izgledati kao izlaz u nastavku:
|
1 2 |
Izlaz: [root@3ce69d2a35b9 /]# |
|
1 |
Napomena: ID kontejnera prikazan u naredbenom retku je jedinstven, a dobro će vam poslužiti kasnije; u primjeru je , to the example it is 3ce69d2a35b9. |
Sada će se svaka naredba koju izvršite pokrenuti unutar kontejnera. To je slično pokretanju naredbe u virtualnom računalu. Pokušajmo instalirati MySQL poslužitelj u CentOS kontejneru. To možete učiniti pomoću:
|
1 |
yum install mysql |
Korak 6: Spremanje promjena u kontejneru u Docker sliku
Nakon pokretanja kontejnera, možete raditi sve operacije koje su izvedive u sličnom virtualnom stroju, poput stvaranja/mijenjanja datoteka ili postavljanja aplikacije. Imajte na umu da će ove promjene ostati samo za taj kontejner, a nakon što uništite kontejner, promjene koje ste napravili bit će izgubljene.
U ovom dijelu vodiča naučit ćete kako stvoriti novu Docker sliku iz kontejnera s promjenama koje ste napravili. Nakon Step5 imate pokrenut CentOS kontejner s instaliranim MySQL poslužiteljem. Ovaj se kontejner sada razlikuje od obične CentOS slike. Možete spremiti ovo stanje kontejnera za daljnju upotrebu. Prvo morate izaći iz kontejnera koristeći:
|
1 |
exit |
Potvrdite promjene koje ste napravili u kontejneru u novu Docker sliku pomoću donje naredbe:
|
1 |
docker commit -m "Promjene napravljene na slici" -a "Ime Autora" container-id repository/new_image_name |
U naredbi, -m se odnosi na poruku o potvrdi i u osnovi bi trebala označavati napravljene promjene, oznaka -a koristi se za navođenje autora. Container-id je onaj iz Step5, koji ste dobili nakon pokretanja kontejnera u interaktivnom načinu rada, a repozitorij je obično vaše korisničko ime za Docker Hub. Na primjer:
|
1 |
docker commit -m "dodan mysql-server" -a "CloudSigma" 59839a1b7de2 finid/centos-mariadb |
|
1 |
Napomena: Nakon što je nova slika potvrđena, ona se sprema na vaš sustav. . U sljedećim fazama ovog vodiča naučit ćete , kako poslati sliku na Docker Hub i u slične registre koji udomljuju docker slike. Nakon što se vaša slika pošalje . u registar, mogu joj pristupiti i drugi također., it can be accessed by others as well. |
Sada kada je slika potvrđena, naredba docker images trebala bi izlistati novu sliku kao i stare:
|
1 |
docker images |
Izlaz naredbe trebao bi biti sličan ovome u nastavku:
|
1 2 3 4 5 |
Izlaz: REPOSITORY TAG IMAGE ID CREATED SIZE cloudsigma23/centos-mysql latest 1b9368efea70 13 sekundi prije 308MB centos latest 300e315adb2f 2 mjeseci prije 209MB hello-world latest bf756fb1ae65 13 mjeseci prije 13.3kB |
Kao što se vidi u primjeru, nova slika centos-mysql stvorena je pomoću CentOS slike s Docker Huba. Razlika u veličini određuje da su napravljene neke promjene. U ovom primjeru to je bilo dodavanje MySQL poslužitelja u kontejner. Sljedeći put ako trebate kontejner s MySQL poslužiteljem, možete samo pokrenuti novu sliku i voilà! Imate CentOS kontejner s unaprijed instaliranim MySQL poslužiteljem koji radi.
Korak 7: Upravljanje Docker kontejnerima
Sada kada ste upoznati s Dockerom, nakon što ste ga koristili neko vrijeme, već imate neke pokrenute i neke neaktivne kontejnere. Da biste dobili popis aktivnih kontejnera, trebate koristiti:
|
1 |
docker ps |
Trebali biste vidjeti sličan izlaz:
|
1 2 3 |
Izlaz: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 604c889cf404 centos "/bin/bash" 20 minuta prije Aktivan 20 minuta intelligent_easley |
Kako biste izlistali i aktivne i neaktivne kontejnere, trebate koristiti zastavicu -a s naredbom:
|
1 |
docker ps -a |
Kako biste pronašli posljednji kontejner koji ste izradili, možete navesti zastavicu -l:
|
1 |
docker ps -l |
Za zaustavljanje pokrenutog/aktivnog kontejnera pokrenite jednostavnu naredbu:
|
1 |
docker stop container-id |
ID kontejnera (container-id) možete pronaći u izlazu naredbe Docker ps.
Korak 8: Objavljivanje slika u repozitorij
Sljedeći korak nakon izrade nove slike je njezino dijeljenje s prijateljima. Također je možete učiniti dostupnom cijelom svijetu koristeći Docker Hub ili bilo koji drugi registar. Prije slanja (push) slike, potrebno se prijaviti u odgovarajući registar.
U sljedećem dijelu vodiča naučit ćete kako poslati slike na Docker Hub. Prvo se registrirajte na Docker Hubu. Morat ćete se prijaviti na Docker Hub kako biste poslali svoju sliku pomoću naredbe u nastavku:
|
1 |
docker login -u docker-registry-username |
Nakon što unesete ispravnu lozinku i autentifikacija uspije, možete poslati svoju sliku. Za slanje slike upotrijebite naredbu u nastavku:
|
1 |
docker push docker-registry-username/docker-image-name |
Izlaz naredbe bit će sličan ovome:
|
1 2 3 4 5 |
Izlaz: The push refers to repository [docker.io/cloudsigma23/centos-mysql] ee30e80cbcc5: Pushed 2653d992f4ef: Mounted from library/centos ... |
Nakon što pošaljete sliku, ona bi se trebala pojaviti na nadzornoj ploči vašeg računa, kao što je prikazano na slici ispod:

U slučaju neuspjeha na sličan način, vjerojatno se niste prijavili:
|
1 2 3 4 5 6 7 |
Izlaz: The push refers to repository [docker.io/cloudsigma23/centos-mysql] ee30e80cbcc5: Layer already exists 2653d992f4ef: Layer already exists errors: denied: requested access to the resource is denied unauthorized: authentication required |
Možete se prijaviti i ponoviti pokušaj slanja.
Zaključak
Postoji mnogo načina na koje možete iskoristiti Docker. Ovaj bi vam vodič trebao pružiti dovoljno informacija za početak. A budući da je Docker doista popularan projekt, možete pronaći mnogo pojedinosti o korištenju, kao i o različitim slučajevima upotrebe na blogu projekta.
Također možete pogledati naše ostale Docker vodiče kako biste saznali više o tome što možete učiniti s Dockerom:
- Čišćenje Docker resursa – slike, kontejneri i volumeni
- Implementacija Laravela, Nginxa i MySQL-a pomoću Docker Composea
- Pokrenite vlastiti VPN poslužitelj pod Dockerom s OpenVPN Access Serverom
Sretno s radom!
Komentari
Još nema komentara. Budite prvi.