Instalirajte Docker i naučite osnovnu manipulaciju spremnikom u CentOS-u i RHEL 8/7 - 1. dio


U ovoj seriji od 4 članka raspravljat ćemo o Dockeru, laganom virtualizacijskom alatu otvorenog koda koji radi na vrhu razine operativnog sustava, omogućujući korisnicima stvaranje, pokretanje i implementaciju aplikacija, kapsuliranih u male spremnici.

Ova vrsta Linux spremnika dokazano je brza, prenosiva i sigurna. Procesi koji se pokreću u Docker spremniku uvijek su izolirani od glavnog hosta, sprječavajući vanjsko petljanje.

Ovaj vodič pruža početnu točku o tome kako instalirati Docker, stvoriti i pokrenuti Docker spremnike na CentOS/RHEL 8/7, ali jedva zagrebe površinu Dockera.

Korak 1: Instalirajte i konfigurirajte Docker

1. Ranije verzije Dockera zvale su se docker ili docker-engine, ako ih imate instalirane, morate deinstalirajte ih prije instaliranja novije verzije docker-ce.

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. Da biste instalirali najnoviju verziju Docker Enginea morate postaviti Docker repozitorij i instalirati paket yum-utils kako biste omogućili Docker stabilno spremište na sustavu.

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3. Sada instalirajte noviju docker-ce verziju iz Docker repozitorija i containerd ručno, jer je Red Hat zbog nekih problema blokirao instalaciju containerd.io > 1.2.0-3.el7, što je ovisnost o docker-ce.

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install docker-ce docker-ce-cli

4. Nakon što je Docker paket instaliran, pokrenite demona, provjerite njegov status i omogućite ga na cijelom sustavu koristeći donje naredbe:

systemctl start docker 
systemctl status docker
systemctl enable docker

5. Na kraju, pokrenite testnu sliku spremnika kako biste provjerili radi li Docker ispravno, izdavanjem sljedeće naredbe:

docker run hello-world

Ako vidite donju poruku, onda je sve na pravom mjestu.

Uzorak izlaza
Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

6. Sada možete pokrenuti nekoliko osnovnih Docker naredbi da biste dobili neke informacije o Dockeru:

Za informacije o Dockeru za cijeli sustav
docker info

Za Docker verziju
docker version

7. Da biste dobili popis svih dostupnih Docker naredbi, upišite docker na vašoj konzoli.

docker

2. korak: preuzmite Docker sliku

8. Kako biste pokrenuli i pokrenuli Docker spremnik, prvo se mora preuzeti slika s Docker Huba na vašem hostu. Docker Hub nudi mnogo besplatnih slika iz svojih repozitorija.

Za traženje Docker slike, Ubuntu, na primjer, izdajte sljedeću naredbu:

docker search ubuntu

9. Nakon što ste odlučili koju sliku želite pokrenuti na temelju svojih potreba, preuzmite je lokalno pokretanjem donje naredbe (u ovom slučaju Ubuntu slika se preuzima i koristi ):

docker pull ubuntu

10. Za popis svih dostupnih Docker slika na vašem glavnom računalu izdajte sljedeću naredbu:

docker images

11. Ako vam više ne treba Docker slika i želite je ukloniti s hosta, izdajte sljedeću naredbu:

docker rmi ubuntu

Korak 3: Pokrenite Docker spremnik

Kada izvršite naredbu nad slikom, u osnovi dobivate spremnik. Nakon završetka naredbe koja se izvršava u spremniku, spremnik se zaustavlja (dobivate spremnik koji se ne pokreće ili je izašao iz spremnika). Ako ponovo pokrenete drugu naredbu na istoj slici, stvara se novi spremnik i tako dalje.

Svi stvoreni spremnici ostat će u glavnom datotečnom sustavu dok ih ne odaberete izbrisati pomoću naredbe docker rm.

12. Kako biste stvorili i pokrenuli spremnik, morate pokrenuti naredbu u preuzetu sliku, u ovom slučaju, Ubuntu, tako da bi osnovna naredba bila prikazati datoteka verzije distribucije unutar spremnika pomoću naredbe cat, kao u sljedećem primjeru:

docker run ubuntu cat /etc/issue

Gornja naredba podijeljena je na sljedeći način:

docker run [local image] [command to run into container]

13. Za ponovno pokretanje jednog od spremnika s naredbom koja je izvršena za njegovo stvaranje, prvo morate dobiti ID spremnika (ili naziv koji automatski generira Docker) izdavanjem naredbe u nastavku, koja prikazuje popis spremnika koji rade i zaustavljenih (ne rade):

docker ps -l 

14. Nakon što se dobije spremnik ID, možete ponovo pokrenuti spremnik s naredbom koja je korištena za njegovo stvaranje, izdavanjem sljedeće naredbe:

docker start 923a720da57f

Ovdje niz 923a720da57f predstavlja ID spremnika.

15. U slučaju da je spremnik pokrenut, možete dobiti njegov ID izdavanjem naredbe docker ps. Za zaustavljanje pokrenutog spremnika izdajte naredbu docker stop tako da navedete ID ili automatski generirani naziv spremnika.

docker stop 923a720da57f
OR
docker stop cool_lalande
docker ps

16. Elegantnija alternativa tako da ne morate pamtiti ID spremnika bila bi dodijeliti jedinstveni naziv za svaki spremnik koji izradite pomoću - -name opcija u naredbenom retku, kao u sljedećem primjeru:

docker run --name ubuntu20.04 ubuntu cat /etc/issue

17. Zatim, koristeći naziv koji ste dodijelili spremniku, možete manipulirati spremnikom (start, stop, ukloni, top, statistika) nadalje samo adresiranjem njegovog imena, kao u primjerima u nastavku:

docker start ubuntu20.04
docker stats ubuntu20.04
docker top ubuntu20.04 

Imajte na umu da neke od gornjih naredbi možda neće prikazati izlaz ako završi proces naredbe koji je korišten za stvaranje spremnika. Kada završi proces koji se odvija unutar spremnika, spremnik se zaustavlja.

Korak 4: Pokrenite interaktivnu sesiju u spremnik

18. Kako biste se interaktivno povezali na sesiju ljuske spremnika i pokrenuli naredbe kao što to činite u bilo kojoj drugoj Linux sesiji, izdajte sljedeću naredbu:

docker run -it ubuntu bash

Gornja naredba podijeljena je na sljedeći način:

  1. -i se koristi za pokretanje interaktivne sesije.
  2. -t dodjeljuje TTY i prilaže stdin i stdout.
  3. ubuntu je slika koju smo koristili za izradu spremnika.
  4. bash (ili /bin/bash) je naredba koju izvodimo unutar Ubuntu spremnika.

19. Za izlazak i povratak na host iz sesije spremnika koja je pokrenuta morate upisati naredbu exit. Naredba exit prekida sve procese spremnika i zaustavlja ga.

exit

20. Ako ste interaktivno prijavljeni na odzivnik kontejnerskog terminala i trebate držati spremnik u stanju pokretanja, ali izaći iz interaktivne sesije, možete napustiti< konzolu i vratite se na terminal glavnog računala pritiskom na tipke Ctrl+p i Ctrl+q.

21. Za ponovno povezivanje s aktivnim spremnikom potreban vam je ID ili ime spremnika. Izdajte naredbu docker ps da dobijete ID ili name, a zatim pokrenite naredbu docker attach navodeći spremnik ID ili name, kao što je ilustrirano na gornjoj slici:

docker attach <container id>

22. Za zaustavljanje spremnika koji radi iz glavne sesije izdajte sljedeću naredbu:

docker kill <container id>

To je sve za osnovnu manipulaciju spremnikom. U sljedećem vodiču raspravljat ćemo o tome kako spremiti, izbrisati i pokrenuti web poslužitelj u Docker spremniku.