În această serie de 4 articole, vom discuta Docher, care este un instrument de virtualizare ușor open-source care rulează la nivelul superior al sistemului de operare, permițând utilizatorilor să creeze, să ruleze și să implementeze aplicații, încapsulate în containere mici.
Acest tip de containere Linux s-a dovedit a fi rapid, portabil și sigur. Procesele care rulează într-un Docher containerele sunt întotdeauna izolate de gazda principală, prevenind manipularea în exterior.
Partea 1: Instalați Docker și învățați manipularea de bază a containerelor în CentOS și RHEL 8/7
Acest tutorial oferă un punct de plecare despre cum să instalați Docker, să creați și să rulați containere Docker pe CentOS / RHEL 8/7, dar abia zgârie suprafața lui Docker.
1. Versiunile anterioare ale Docher au fost sunați docher sau motor de andocare, dacă le aveți instalate, trebuie să le dezinstalați înainte de a instala o versiune mai nouă docker-ce versiune.
# yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine.
2. Pentru a instala cea mai recentă versiune de Docker Engine trebuie să configurați depozitul Docker și să instalați fișierul yum-utils pachet pentru a activa depozitul stabil Docker pe sistem.
# yum instalează -y yum-utils. # yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo.
3. Acum instalați cea mai nouă docker-ce versiunea din depozitul Docker și containerd manual, deoarece din cauza unor probleme, Red Hat a blocat instalarea containerd.io> 1.2.0-3.el7
, care este o dependență de docker-ce.
# yum instalați 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. După ce pachetul Docker a fost instalat, porniți demonul, verificați starea acestuia și activați-l la nivel de sistem folosind comenzile de mai jos:
# systemctl start docker # systemctl status docker. # systemctl activate docker.
5. În cele din urmă, rulați o imagine de testare a containerului pentru a verifica dacă Docker funcționează corect, prin emiterea următoarei comenzi:
# docker rulează hello-world.
Dacă puteți vedea mesajul de mai jos, atunci totul este la locul potrivit.
Verificați instalarea Docker
Bună ziua de la Docker! Acest mesaj arată că instalarea dvs. pare să funcționeze corect. Pentru a genera acest mesaj, Docker a făcut următorii pași: 1. Clientul Docker a contactat demonul Docker. 2. Demonul Docker a extras imaginea „hello-world” din hub-ul Docker. (amd64) 3. Demonul Docker a creat un container nou din acea imagine care rulează executabilul care produce ieșirea pe care o citiți în prezent. 4. Demonul Docker a transmis acea ieșire către clientul Docker, care l-a trimis la terminalul dvs. Pentru a încerca ceva mai ambițios, puteți rula un container Ubuntu cu: $ docker run -it ubuntu bash Distribuiți imagini, automatizați fluxurile de lucru și multe altele cu un ID Docker gratuit: https://hub.docker.com/ Pentru mai multe exemple și idei, vizitați: https://docs.docker.com/get-started/
6. Acum, puteți rula câteva comenzi de bază Docker pentru a obține câteva informații despre Docker:
# informații despre andocare.
# versiune docker.
7. Pentru a obține o listă cu toate comenzile Docker disponibile, tastați docker pe consola dvs.
# docker.
8. Pentru a porni și a rula un container Docker, mai întâi, trebuie descărcată o imagine din Docker Hub pe gazda ta. Docker Hub oferă o mulțime de imagini gratuite din depozitele sale.
Pentru a căuta o imagine Docker, Ubuntu, de exemplu, lansați următoarea comandă:
# docker search ubuntu.
9. După ce ați decis ce imagine doriți să rulați în funcție de nevoile dvs., descărcați-o local executând comanda de mai jos (în acest caz o Ubuntu imaginea este descărcată și utilizată):
# docker pull ubuntu.
10. Pentru a lista toate imaginile Docker disponibile pe gazda dvs., lansați următoarea comandă:
# imagini docker.
11. Dacă nu mai aveți nevoie de o imagine Docker și doriți să o eliminați din gazdă, efectuați următoarea comandă:
# docker rmi ubuntu.
Când executați o comandă împotriva unei imagini, obțineți practic un container. După ce comanda care se execută în container se termină, containerul se oprește (veți obține un container care nu rulează sau a ieșit). Dacă rulați o altă comandă în aceeași imagine, este creat un nou container și așa mai departe.
Toate containerele create vor rămâne pe sistemul de fișiere gazdă până când alegeți să le ștergeți folosind docker rm
comanda.
12. Pentru a crea și a rula un container, trebuie să rulați comanda într-o imagine descărcată, în acest caz, Ubuntu, deci o comandă de bază ar fi afișarea fișierului versiune de distribuție în interiorul containerului folosind comandă pisică, ca în exemplul următor:
# docker rulează Ubuntu cat / etc / issue.
Comanda de mai sus este împărțită după cum urmează:
# docker run [local image] [comanda pentru a rula în container]
13. Pentru a rula din nou unul dintre containere cu comanda care a fost executată pentru a-l crea, mai întâi trebuie să obțineți containerul ID (sau numele generat automat de Docker) prin emiterea comenzii de mai jos, care afișează o listă a containerelor care rulează și care sunt oprite (care nu rulează):
# docker ps -l
14. Odată ce containerul ID a fost obținut, puteți porni din nou containerul cu comanda care a fost utilizată pentru a-l crea, emițând următoarea comandă:
# docker start 923a720da57f.
Aici, șirul 923a720da57f
reprezintă containerul ID.
15. În cazul în care containerul funcționează, îl puteți obține ID prin emiterea docker ps
comanda. Pentru a opri problema containerului care rulează oprire docker
comandă prin specificarea containerului ID sau nume generat automat.
# docker stop 923a720da57f. SAU. # docker stop cool_lalande. # docker ps.
16. O alternativă mai elegantă, astfel încât să nu trebuie să vă amintiți containerul ID ar fi să alocați un nume unic pentru fiecare container pe care îl creați utilizând --Nume
opțiune pe linia de comandă, ca în exemplul următor:
# docker run --name ubuntu20.04 ubuntu cat / etc / issue.
17. Apoi, folosind numele pe care l-ați alocat containerului, puteți manipula containerul (start, Stop, elimina, top, statistici) mai departe doar adresându-i numele, ca în exemplele de mai jos:
# docker pornește ubuntu20.04. # docker stats ubuntu20.04. # docker top ubuntu20.04
Rețineți că unele dintre comenzile de mai sus s-ar putea să nu afișeze nicio ieșire dacă procesul de comandă care a fost folosit pentru a crea containerul se termină. Când procesul care rulează în interiorul containerului se termină, containerul se oprește.
18. Pentru a vă conecta interactiv într-o sesiune de shell de container și a rula comenzi așa cum faceți în orice altă sesiune Linux, lansați următoarea comandă:
# docker run -it ubuntu bash.
Comanda de mai sus este împărțită după cum urmează:
-i
este folosit pentru a începe o sesiune interactivă.-t
alocă un TTY și atașează stdin și stdout.ubuntu
este imaginea pe care am folosit-o pentru a crea containerul.bash
(sau /bin/bash) este comanda pe care o executăm în containerul Ubuntu.19. Pentru a ieși și a reveni la gazdă din sesiunea de rulare a containerului, trebuie să tastați Ieșire
comanda. Ieșire comanda termină toate procesele containerului și le oprește.
# Ieșire.
20. Dacă sunteți conectat interactiv la solicitarea terminalului containerului și trebuie să păstrați containerul în stare de funcționare, dar Ieșire din sesiunea interactivă, puteți părăsi consola și reveniți la terminalul gazdă apăsând Ctrl + p
și Ctrl + q
chei.
21. Pentru a vă reconecta la containerul care rulează, aveți nevoie de container ID sau Nume. Emisiune docker ps
comanda pentru a obține ID sau Nume și, apoi, fugi atașare docker
comandă prin specificarea containerului ID sau Nume, așa cum este ilustrat în imaginea de mai sus:
# atașare docker
22. Pentru a opri un container care rulează din sesiunea gazdă, lansați următoarea comandă:
# docker kill
Asta este totul pentru manipularea de bază a containerelor. În următorul tutorial, vom discuta despre modul de salvare, ștergere și rularea unui server web într-un container Docker.