în această serie de 4 articole, vom discuta despre Docker, care este un instrument de virtualizare ușor open-source care rulează la nivelul sistemului de operare, permițând utilizatorilor să creeze, să ruleze și să implementeze aplicații, încapsulate în containere mici.
acest tip de containere Linux se dovedesc a fi rapide, portabile și sigure. Procesele care rulează într-un container Docker sunt întotdeauna izolate de gazda principală, împiedicând manipularea exterioară.
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 Docker.
Pasul 1: Instalați și configurați Docker
1. Versiunile anterioare ale Docker au fost numite docker sau docker-engine, dacă le aveți instalate, trebuie să le dezinstalați înainte de a instala o versiune mai nouă docker-ce.
# 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 a motorului Docker, trebuie să configurați depozitul Docker și să instalați pachetul yum-utils pentru a activa depozitul Docker stabil pe sistem.
# yum install -y yum-utils# yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3. Acum instalați versiunea mai nouă docker-ce 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ță a 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. După, 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 enable docker
5. În cele din urmă, executați o imagine de testare a containerului pentru a verifica dacă Docker funcționează corect, emitând următoarea comandă:
# docker run hello-world
dacă puteți vedea mesajul de mai jos, atunci totul este la locul potrivit.
exemplu de ieșire
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 bashShare 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. Acum, Puteți rula câteva comenzi Docker de bază pentru a obține câteva informații despre Docker:
For system-wide information on Docker
# docker info
For Docker version
# docker version
7. To get a list of all available Docker commands type docker on your console.
# docker
Pasul 2: Descărcați o imagine Docker
8. Pentru a porni și rula un container Docker, mai întâi, o imagine trebuie descărcată de pe Docker Hub de pe gazda dvs. Docker Hub oferă o mulțime de imagini gratuite din depozitele sale.
pentru a căuta o imagine Docker, Ubuntu, de exemplu, emite 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 este descărcată și utilizată o imagine Ubuntu):
# docker pull ubuntu
10. Pentru a lista toate imaginile Docker disponibile pe problema gazdă următoarea comandă:
# docker images
11. Dacă nu mai aveți nevoie de o imagine Docker și doriți să o eliminați din problema gazdă, următoarea comandă:
# docker rmi ubuntu
Pasul 3: Rulați un Container Docker
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 (obțineți un container care nu rulează sau a ieșit). Dacă executați o altă comandă în aceeași imagine din nou un container nou este creat și așa mai departe.
toate containerele create vor rămâne în sistemul de fișiere gazdă până când alegeți să le ștergeți utilizând comandadocker rm
.
12. Pentru a crea și 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 versiunii de distribuție în interiorul containerului folosind comanda cat, ca în următorul exemplu:
# docker run ubuntu cat /etc/issue
comanda de mai sus este împărțită după cum urmează:
# docker run
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 ID-ul containerului (sau numele generat automat de Docker) prin emiterea comenzii de mai jos, care afișează o listă a containerelor care rulează și oprite (care nu rulează):
# docker ps -l
14. Odată ce ID-ul containerului a fost obținut, puteți porni din nou containerul cu comanda care a fost utilizată pentru a-l crea, emitând următoarea comandă:
# docker start 923a720da57f
aici, șirul 923a720da57f
reprezintă ID-ul containerului.
15. În cazul în care containerul rulează starea, puteți obține ID-ul său prin emiterea docker ps
comandă. Pentru a opri problema containerului care rulează docker stop
comanda specificând ID-ul containerului sau numele generat automat.
# docker stop 923a720da57fOR# docker stop cool_lalande# docker ps
16. O alternativă mai elegantă, astfel încât să nu trebuie să vă amintiți ID-ul containerului ar fi să alocați un nume unic pentru fiecare container pe care îl creați utilizând opțiunea --name
din 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, remove, top, stats) mai departe doar adresându-i numele, ca în exemplele de mai jos:
# docker start ubuntu20.04# docker stats ubuntu20.04# docker top ubuntu20.04
fiți conștienți că unele dintre comenzile de mai sus 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ă, recipientul se oprește.
Pasul 4: Rulați o sesiune interactivă într-un Container
18. Pentru a vă conecta interactiv la o sesiune Shell container și pentru a rula comenzi așa cum faceți în orice altă sesiune Linux, emiteț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 rulăm în interiorul containerului Ubuntu.
19. Pentru a ieși și a reveni la gazdă din sesiunea containerului care rulează, trebuie să tastațiexit
comandă. Comanda exit termină toate procesele containerului și o oprește.
# exit
20. Dacă sunteți conectat interactiv la container Terminal prompt și trebuie să păstrați containerul în stare de funcționare, dar ieșiți din sesiunea interactivă, puteți părăsi consola și puteți reveni la terminalul gazdă apăsând tastele Ctrl+p
și Ctrl+q
.
21. Pentru a vă reconecta la containerul care rulează, aveți nevoie de ID-ul sau numele containerului. Problemă docker ps
comanda pentru a obține ID-ul sau numele și, apoi, executați docker attach
comanda specificând ID-ul sau numele containerului, așa cum este ilustrat în imaginea de mai sus:
# docker attach <container id>
22. Pentru a opri un container care rulează din sesiunea gazdă emite următoarea comandă:
# docker kill <container id>
asta e tot pentru manipularea containerului de bază. În următorul tutorial, vom discuta despre cum să salvați, să ștergeți și să rulați un server web într-un container Docker.