CentOS un RHEL 8/7 - 1. daļa - instalējiet Docker un uzziniet, kā manipulēt ar konteineriem


Šajā 4 rakstu sērijā mēs apspriedīsim Docker, kas ir atvērtā koda viegls virtualizācijas rīks, kas darbojas operētājsistēmas līmeņa augšdaļā, ļaujot lietotājiem izveidot, palaist un izvietot lietojumprogrammas, kas iekapsulētas mazos konteineros.

Ir pierādīts, ka šāda veida Linux konteineri ir ātri, pārnēsājami un droši. Procesi, kas darbojas Docker konteinerā, vienmēr ir izolēti no galvenā resursdatora, novēršot manipulācijas ārpusē.

Šī apmācība sniedz sākumpunktu, kā instalēt Docker, izveidot un palaist Docker konteinerus uz CentOS/RHEL 8/7, taču knapi saskrāpē Docker virsmu.

1. darbība: instalējiet un konfigurējiet Docker

1. Iepriekšējās Docker versijas sauca par docker vai docker-engine. Ja jums tādas ir instalētas, pirms jaunākas docker-ce versijas instalēšanas tās jāinstalē.

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

2. Lai instalētu jaunāko Docker Engine versiju, jums jāiestata Docker repozitorijs un jāinstalē pakete yum-utils, lai sistēmā iespējotu stabilu Docker repozitoriju.

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

3. Tagad manuāli instalējiet jaunāko Docker-ce versiju no Docker repozitorija un containerd, jo dažu problēmu dēļ Red Hat bloķēja containerd.io> 1.2.0-3.el7 instalēšanu, kas ir docker-ce atkarība.

# 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. Pēc Docker pakotnes instalēšanas palaidiet dēmonu, pārbaudiet tā statusu un iespējojiet to visā sistēmā, izmantojot šādas komandas:

# systemctl start docker 
# systemctl status docker
# systemctl enable docker

5. Visbeidzot, veicot šādu komandu, palaidiet konteinera testa attēlu, lai pārbaudītu, vai Docker darbojas pareizi.

# docker run hello-world

Ja redzat zemāk redzamo ziņojumu, tad viss ir īstajā vietā.

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. Tagad varat palaist dažas pamata Docker komandas, lai iegūtu informāciju par Docker:

# docker info
# docker version

7. Lai savā konsolē iegūtu visu pieejamo Docker komandu sarakstu, ierakstiet docker.

# docker

2. darbība. Lejupielādējiet Docker attēlu

8. Lai palaistu un palaistu Docker konteineru, vispirms ir jālejupielādē attēls no datora Docker Hub. Docker Hub piedāvā daudz bezmaksas attēlu no saviem krātuvēm.

Piemēram, lai meklētu Docker attēlu, Ubuntu izdod šādu komandu:

# docker search ubuntu

9. Pēc tam, kad esat izlēmis, kuru attēlu vēlaties palaist, pamatojoties uz savām vajadzībām, lejupielādējiet to lokāli, izpildot komandu zemāk (šajā gadījumā tiek lejupielādēts un izmantots Ubuntu attēls):

# docker pull ubuntu

10. Lai uzskaitītu visus pieejamos Docker attēlus jūsu resursdatorā, izsniedziet šādu komandu:

# docker images

11. Ja jums vairs nav nepieciešams Docker attēls un vēlaties to noņemt no resursdatora, izsniedziet šādu komandu:

# docker rmi ubuntu

3. darbība: palaidiet Docker konteineru

Izpildot komandu pret attēlu, jūs galvenokārt iegūstat konteineru. Kad komanda, kas tiek izpildīta konteinerā, beidzas, konteiners apstājas (tiek parādīts nederīgs vai aizvērts konteiners). Ja tajā pašā attēlā atkal palaižat citu komandu, tiek izveidots jauns konteiners utt.

Visi izveidotie konteineri paliks resursdatora failu sistēmā, līdz izvēlēsieties tos izdzēst, izmantojot komandu docker rm .

12. Lai izveidotu un palaistu konteineru, jums ir jāpalaiž komanda lejupielādētā attēlā, šajā gadījumā - Ubuntu, tāpēc pamata komanda būtu displeja versijas faila parādīšana konteinerā, izmantojot komandu cat, kā norādīts tālāk piemērs:

# docker run ubuntu cat /etc/issue

Iepriekš minētā komanda ir sadalīta šādi:

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

13. Lai vēlreiz palaistu vienu no konteineriem ar komandu, kas tika izpildīta tā izveidošanai, vispirms jums jāiegūst konteinera ID (vai Docker automātiski ģenerētais nosaukums), izsniedzot zemāk esošo komandu, kurā tiek parādīts palaisto un apturēti (nedarbināmi) konteineri:

# docker ps -l 

14. Kad konteinera ID ir iegūts, varat vēlreiz palaist konteineru ar komandu, kas tika izmantota tā izveidošanai, izsniedzot šādu komandu:

# docker start 923a720da57f

Virkne 923a720da57f apzīmē konteinera ID.

15. Ja konteiners darbojas stāvoklī, tā ID varat iegūt, izsniedzot komandu docker ps . Lai apturētu darbojošos konteinera problēmu docker stop komandu, norādot konteinera ID vai automātiski ģenerēto nosaukumu.

# docker stop 923a720da57f
OR
# docker stop cool_lalande
# docker ps

16. Elegantāka alternatīva, lai jums nebūtu jāatceras konteinera ID, būtu piešķirt unikālu nosaukumu katram izveidotajam konteineram, komandrindā izmantojot opciju --name , kā šādu piemēru:

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

17. Pēc tam, izmantojot konteineram piešķirto nosaukumu, varat manipulēt ar konteineru (sākums, apturēšana, noņemšana, augšdaļa, statistika), vienkārši adresējot tā nosaukumu, kā parādīts zemāk esošajos piemēros:

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

Ņemiet vērā, ka dažās no iepriekš minētajām komandām var netikt parādīts izvads, ja tiek pabeigts komandas process, kas tika izmantots konteinera izveidošanai. Kad process, kas notiek konteinera iekšpusē, beidzas, konteiners apstājas.

4. darbība: palaidiet interaktīvu sesiju konteinerā

18. Lai interaktīvi izveidotu savienojumu konteinera čaulas sesijā un palaistu komandas tāpat kā jebkurā citā Linux sesijā, izsniedziet šādu komandu:

# docker run -it ubuntu bash

Iepriekš minētā komanda ir sadalīta šādi:

  1. -i tiek izmantots, lai sāktu interaktīvu sesiju.
  2. -t piešķir TTY un pievieno stdin un stdout.
  3. ubuntu ir attēls, kuru izmantojām konteinera izveidošanai.
  4. bash (vai/bin/bash) ir komanda, kuru izpildām Ubuntu konteinerā.

19. Lai izietu un atgrieztos resursdatorā no darbojošās konteinera sesijas, jums jāievada komanda exit . Komanda exit izbeidz visus konteinera procesus un to aptur.

# exit

20. Ja esat interaktīvi pieteicies konteinera termināla uzvednē un jums ir jāuztur konteiners darba stāvoklī, bet jāiziet no interaktīvās sesijas, varat iziet no konsoles un atgriezties resursdatora terminālī, nospiežot Ctrl + p un Ctrl + q taustiņi.

21. Lai atjaunotu savienojumu ar darbojošos konteineru, jums ir nepieciešams konteinera ID vai nosaukums. Izdodiet komandu docker ps , lai iegūtu ID vai nosaukumu, un pēc tam palaidiet komandu docker attach , norādot konteinera ID vai nosaukumu, kā parādīts iepriekš redzamajā attēlā:

# docker attach <container id>

22. Lai apturētu darbojošos konteineru no resursdatora sesijas, izsniedziet šādu komandu:

# docker kill <container id>

Tas viss ir paredzēts manipulācijām ar konteineriem. Nākamajā apmācībā mēs apspriedīsim, kā saglabāt, dzēst un palaist tīmekļa serveri Docker konteinerā.