Įdiekite „Docker“ ir išmokite pagrindines konteinerių manipuliacijas „CentOS“ ir „RHEL 8/7“ – 1 dalis


Šioje 4 straipsnių serijoje aptarsime Docker, atvirojo kodo lengvą virtualizavimo įrankį, kuris veikia aukščiausiu operacinės sistemos lygiu, leidžiantis vartotojams kurti, paleisti ir diegti programas, įtrauktas į mažas dalis. konteineriai.

Įrodyta, kad šio tipo „Linux“ konteineriai yra greiti, nešiojami ir saugūs. Procesai, kurie vykdomi Docker konteineryje, visada yra atskirti nuo pagrindinio pagrindinio kompiuterio, kad būtų išvengta išorinio klastojimo.

Šioje mokymo programoje pateikiamas atspirties taškas, kaip įdiegti „Docker“, kurti ir paleisti „Docker“ konteinerius CentOS/RHEL 8/7, tačiau jis beveik nesubraižo „Docker“ paviršiaus.

1 veiksmas: įdiekite ir sukonfigūruokite „Docker“.

1. Ankstesnės Docker versijos buvo vadinamos Docker arba Docker-engine. Jei esate jas įdiegę, turite pašalinkite juos prieš įdiegdami naujesnę docker-ce versiją.

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

2. Norėdami įdiegti naujausią Docker Engine versiją, turite nustatyti Docker saugyklą ir įdiegti yum-utils paketą, kad įgalintumėte Docker stabili saugykla sistemoje.

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

3. Dabar įdiekite naujesnę docker-ce versiją iš Docker saugyklos ir containerd rankiniu būdu, nes dėl kai kurių problemų Red Hat užblokavo diegimą containerd.io > 1.2.0-3.el7, kuri yra docker-ce priklausomybė.

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. Įdiegę „Docker“ paketą, paleiskite demoną, patikrinkite jo būseną ir įgalinkite jį visoje sistemoje naudodami toliau pateiktas komandas:

systemctl start docker 
systemctl status docker
systemctl enable docker

5. Galiausiai paleiskite konteinerio bandomąjį vaizdą, kad patikrintumėte, ar „Docker“ veikia tinkamai, išduodami šią komandą:

docker run hello-world

Jei matote žemiau esantį pranešimą, tada viskas yra tinkamoje vietoje.

Pavyzdžio išvestis
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. Dabar galite paleisti kelias pagrindines „Docker“ komandas, kad gautumėte informacijos apie „Docker“:

Norėdami gauti visos sistemos informacijos apie „Docker“.
docker info

Docker versijai
docker version

7. Norėdami gauti visų galimų „Docker“ komandų sąrašą, konsolėje įveskite docker.

docker

2 veiksmas: atsisiųskite „Docker“ vaizdą

8. Norint paleisti ir paleisti „Docker“ sudėtinį rodinį, pirmiausia reikia atsisiųsti vaizdą iš pagrindinio kompiuterio „Docker Hub“. „Docker Hub“ siūlo daug nemokamų vaizdų iš savo saugyklų.

Pavyzdžiui, norėdami ieškoti Docker vaizdo, Ubuntu išduokite šią komandą:

docker search ubuntu

9. Nusprendę, kokį vaizdą norite paleisti pagal savo poreikius, atsisiųskite jį vietoje vykdydami toliau pateiktą komandą (šiuo atveju atsisiunčiamas ir naudojamas Ubuntu vaizdas ):

docker pull ubuntu

10. Norėdami pateikti visus galimus „Docker“ vaizdus savo priegloboje, išduokite šią komandą:

docker images

11. Jei jums nebereikia „Docker“ vaizdo ir norite jį pašalinti iš pagrindinio kompiuterio, išduokite šią komandą:

docker rmi ubuntu

3 veiksmas: paleiskite „Docker“ konteinerį

Kai vykdote komandą prieš vaizdą, iš esmės gaunate konteinerį. Pasibaigus komandai, kuri vykdoma į konteinerį, konteineris sustoja (gaunate neveikiantį arba išvestą konteinerį). Jei tame pačiame paveikslėlyje vėl paleisite kitą komandą, sukuriamas naujas konteineris ir pan.

Visi sukurti konteineriai liks pagrindinio kompiuterio failų sistemoje, kol pasirinksite juos ištrinti naudodami komandą docker rm.

12. Norėdami sukurti ir paleisti sudėtinį rodinį, atsisiųstame vaizde turite paleisti komandą, šiuo atveju Ubuntu, todėl pagrindinė komanda būtų parodyti paskirstymo versijos failą konteineryje naudojant cat komandą, kaip parodyta šiame pavyzdyje:

docker run ubuntu cat /etc/issue

Aukščiau pateikta komanda yra padalinta taip:

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

13. Norėdami vėl paleisti vieną iš sudėtinių rodinių naudodami komandą, kuri buvo įvykdyta jam sukurti, pirmiausia turite gauti sudėtinio rodinio ID (arba pavadinimą, kurį automatiškai sugeneravo „Docker“). išleisdami toliau pateiktą komandą, kuri rodo veikiančių ir sustabdytų (neveikiančių) konteinerių sąrašą:

docker ps -l 

14. Gavę sudėtinio rodinio ID, galite vėl paleisti sudėtinį rodinį naudodami komandą, kuri buvo naudojama jam sukurti, išduodami šią komandą:

docker start 923a720da57f

Čia eilutė 923a720da57f reiškia sudėtinį rodinį ID.

15. Jei sudėtinis rodinys veikia, jo ID galite gauti išduodami komandą docker ps. Norėdami sustabdyti vykdomą sudėtinio rodinio problemą docker stop komandą, nurodydami sudėtinio rodinio ID arba automatiškai sugeneruotą pavadinimą.

docker stop 923a720da57f
OR
docker stop cool_lalande
docker ps

16. Elegantiškesnė alternatyva, kad jums nereikėtų atsiminti sudėtinio rodinio ID, būtų priskirti unikalų pavadinimą kiekvienam sudėtiniam rodiniui, kurį sukuriate naudojant - -name komandų eilutėje, kaip parodyta šiame pavyzdyje:

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

17. Tada naudodami sudėtiniam rodiniui priskirtą pavadinimą galite manipuliuoti sudėtiniu rodiniu (pradėti, sustabdyti, pašalinti)., viršuje, statistika) toliau tiesiog nurodydami pavadinimą, kaip parodyta toliau pateiktuose pavyzdžiuose:

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

Atminkite, kad kai kurios iš aukščiau pateiktų komandų gali nerodyti išvesties, jei komandos, kuri buvo naudojama sudėtiniam rodiniui sukurti, procesas bus baigtas. Kai konteinerio viduje vykstantis procesas baigiasi, konteineris sustoja.

4 veiksmas: paleiskite interaktyvią sesiją į konteinerį

18. Norėdami interaktyviai prisijungti prie konteinerio apvalkalo seanso ir vykdyti komandas, kaip ir bet kurioje kitoje „Linux“ sesijoje, išduokite šią komandą:

docker run -it ubuntu bash

Aukščiau pateikta komanda yra padalinta taip:

  1. -i naudojamas interaktyviai seansui pradėti.
  2. -t priskiria TTY ir prideda stdin bei stdout.
  3. ubuntu yra vaizdas, kurį naudojome kurdami konteinerį.
  4. bash (arba /bin/bash) yra komanda, kurią vykdome Ubuntu konteineryje.

19. Norėdami išeiti ir grįžti į prieglobą iš veikiančios sudėtinio rodinio seanso, turite įvesti komandą exit. Komanda išeiti užbaigia visus sudėtinio rodinio procesus ir juos sustabdo.

exit

20. Jei esate interaktyviai prisijungę prie sudėtinio rodinio terminalo raginimo ir jums reikia, kad sudėtinis rodinys veiktų, bet išeiti iš interaktyvios sesijos, galite išeiti< konsolę ir grįžkite į pagrindinio kompiuterio terminalą paspausdami klavišus Ctrl+p ir Ctrl+q.

21. Norint iš naujo prisijungti prie veikiančio sudėtinio rodinio, reikalingas sudėtinio rodinio ID arba pavadinimas. Išduokite komandą docker ps, kad gautumėte ID arba name, tada paleiskite komandą docker attach, nurodydami konteinerį ID arba vardas, kaip parodyta aukščiau esančiame paveikslėlyje:

docker attach <container id>

22. Norėdami sustabdyti veikiančią sudėtinį rodinį iš pagrindinio kompiuterio seanso, išduokite šią komandą:

docker kill <container id>

Tai viskas, kad būtų galima valdyti pagrindinį konteinerį. Kitoje pamokoje aptarsime, kaip išsaugoti, ištrinti ir paleisti žiniatinklio serverį į Docker konteinerį.