Tutorial Docker pentru începători: elemente de bază, Architectură, Containere

⚡ Rezumat inteligent

Docker este o platformă de containerizare care împachetează aplicațiile și dependențele acestora în containere portabile și ușoare. Această prezentare generală explică arhitectura Docker, instalarea pe... Ubuntu, comenzi esențiale și cum diferă containerele de mașinile virtuale tradiționale pentru o livrare mai rapidă a software-ului.

  • 🐳 Containerizare: Docker virtualizează la nivel de sistem de operare, astfel încât containerele partajează kernelul gazdă și utilizează mai puține resurse decât mașinile virtuale.
  • 🧱 Architectura: Motorul Docker (dockerd), imaginile, registrele și containerele formează arhitectura client-server din spatele fiecărui flux de lucru Docker.
  • 📦 Imagini și containere: O imagine este un șablon doar pentru citire, în timp ce un container este o copie care rulează, iar o singură imagine poate porni mai multe containere.
  • 🗄️ Registre: Docker Hub stochează imagini publice și private, oferindu-vă milioane de imagini gata de utilizare pentru a le extrage și a le rula.
  • ⚙️ Instalare: On Ubuntu Adaugi repozitoriul Docker APT și cheia GPG, apoi instalezi pachetul docker-ce cu apt-get.
  • ⌨️ Comenzi de bază: Gestionați containere cu ajutorul funcțiilor Docker pull, run, start, stop, ps, stats și images din linia de comandă.

Tutorial Docker pentru începători care acoperă arhitectura și instalarea pe Ubuntuși comenzi de bază pentru containere

Docker este una dintre cele mai populare platforme de containerizare utilizate în mediul modern. DevOps și fluxuri de lucru în cloud. Acest tutorial Docker pentru începători explică ce este Docker, cum funcționează arhitectura Docker, cum se instalează Docker pe Ubuntuși comenzile de bază utilizate pentru gestionarea imaginilor și containerelor.

Ce este Docker?

Docher este o platformă de dezvoltare software pentru virtualizare care permite mai multor sisteme de operare să ruleze pe aceeași gazdă. Vă ajută să separați infrastructura de aplicații, astfel încât să puteți livra software rapid. Spre deosebire de hipervizori, care sunt utilizați pentru a crea mașini virtuale (VM), Docker efectuează virtualizarea la nivel de sistem folosind unități numite containere Docker.

Containerele Docker rulează peste sistemul de operare gazdă, așa cum se arată în imaginea de mai jos. Acest lucru îmbunătățește atât eficiența, cât și securitatea. De asemenea, puteți rula mai multe containere decât mașini virtuale pe aceeași infrastructură, deoarece containerele utilizează mai puține resurse.

Virtualizare în Docker vs Hypervisor
Virtualizare în Docker vs Hypervisor

Spre deosebire de mașinile virtuale, care pot comunica direct cu hardware-ul gazdă (de exemplu, un adaptor Ethernet care creează mai multe adaptoare virtuale), containerele Docker rulează într-un mediu izolat, deasupra sistemului de operare gazdă. Chiar dacă gazda rulează Windows, poți fugi Linux imagini în interiorul containerelor cu ajutorul Hyper-V, care creează automat o mică mașină virtuală pentru a virtualiza imaginea de bază.

Acum că știi ce este Docker, hai să analizăm principalele motive pentru care echipele îl aleg.

De ce să folosiți Docker?

Iată principalele motive pentru a utiliza Docker:

  • Docker este un software utilizat pentru virtualizare, permițând mai multe sisteme de operare să ruleze pe aceeași gazdă.
  • Docker este o aplicație client-server, ceea ce înseamnă că clienții comunică cu un server.
  • Imaginile Docker acționează ca „cod sursă” pentru containere; le folosiți pentru a construi.
  • Docker acceptă două tipuri de registre: publice și private.
  • Containerele sunt unitățile organizaționale ale Docker. În termeni simpli, o imagine este un șablon, iar un container este o copie a acelui șablon, astfel încât puteți rula mai multe containere din aceeași imagine.

Aceste beneficii provin din modul în care este proiectat Docker. Următoarea secțiune analizează arhitectura Docker și componentele sale principale.

Docher Architectură

Acum, în acest tutorial despre containerele Docker, haideți să analizăm principalele componente ale arhitecturii Docker.

Docher Archicomponente de structură: motor, imagini, registre și containere

Docher Architectură

Motor Docker

Docker este o aplicație client-server, ceea ce înseamnă că avem clienți care transmit cereri către un server. Daemonul Docker, numit dockerd, este motorul Docker care reprezintă serverul. Daemonul și clienții pot rula pe aceeași gazdă sau pe una la distanță și comunică printr-un fișier binar client în linie de comandă și un fișier complet. RESTful API care interacționează cu dockerd.

Imagini Docker

Imaginile Docker sunt „codul sursă” pentru containerele noastre; le folosim pentru a construi containere. Imaginile pot avea software preinstalat, ceea ce accelerează implementarea. Sunt portabile și puteți utiliza imagini existente sau puteți construi propriile imagini.

Registre Docker

Docker stochează imaginile pe care le construim în registre. Există registre publice și private. Docker are un registru public numit Hub Docker, unde puteți stoca imagini și în mod privat. Docker Hub are milioane de imagini pe care le puteți utiliza imediat.

Docker Containere

Containerele sunt unitățile organizaționale ale Docker și unul dintre conceptele sale de bază. Atunci când construim o imagine și o rulăm, o rulăm în interiorul unui container. Analogia cu containerul este folosită datorită portabilității software-ului care rulează în interiorul acestuia: îl puteți muta, „expedia”, modifica, gestiona, crea sau distruge, la fel cum navele de marfă manipulează containere reale.

În termeni simpli, o imagine este un șablon, iar un container este o copie a acelui șablon. Puteți avea mai multe containere (copii) ale aceleiași imagini.

Interacțiunea dintre aceste componente diferite arată cum funcționează împreună tehnologia containerelor Docker. Comenzi precum docker pull și docker run, pe care le vom acoperi mai târziu, vă permit să gestionați acest flux de lucru.

Având în vedere arhitectura, permiteți-ne să instalăm Docker, astfel încât să puteți încerca aceste componente singuri.

Cum se instalează Docker pe Linux/Ubuntu

Mai jos este un proces pas cu pas de instalare a Docker pe Linux/Ubuntu:

Pas 1) Pentru a instala Docker, aveți nevoie de pachetele DEB ale echipei Docker. Mai întâi, câteva cerințe preliminare Ubuntu Sunt necesare pachete. Folosește comanda de mai jos pentru a le instala.

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*semnul „\” nu este necesar, este folosit pentru noua linie, dacă doriți, puteți scrie comanda fără a folosi „\” doar într-o singură linie.

Pas 2) Adăugați cheia GPG oficială Docker cu amprenta. Folosiți comanda Docker de mai jos pentru a introduce cheia GPG.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Pas 3) Apoi, adăugați depozitul Docker APT folosind comanda de mai jos.

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Este posibil să vi se solicite să confirmați că doriți să adăugați repozitoriul și să adăugați automat cheia GPG la gazdă. Comanda lsb_release ar trebui să completeze fișierul Ubuntu versiunea de distribuție a gazdei dvs.

Pas 4) După adăugarea cheii GPG, actualizați sursele APT folosind comanda Docker de mai jos.

$ sudo apt-get update

Acum puteți instala pachetul Docker în sine.

Pas 5) După ce sursele APT sunt actualizate, începeți instalarea pachetelor Docker pe Ubuntu folosind comanda Docker de mai jos.

$ sudo apt-get install docker-ce

Comanda de mai sus instalează Docker și alte pachete necesare. Înainte de Docker 1.8.0, numele pachetului era lxc-docker, iar între Docker 1.8 și 1.13, numele pachetului era docker-engine.

NOTĂ: Docker pentru Windows Necesită Windows 10 Pro sau Enterprise versiunea 14393 sau Windows Server 2016 RTM, pentru a rula.

Cum să utilizați Docker folosind comenzile de bază Docker

Iată cum se utilizează Docker cu câteva comenzi Docker de bază.

Cea mai simplă comandă pe care ar trebui să o executați după instalarea Docker este docker info, așa cum am menționat anterior.

$ sudo docker info

Ar trebui să obțineți un rezultat similar cu următorul.

Folosește Docker folosind comenzi Docker de bază, afișând informațiile de ieșire ale Docker

Așa cum se arată în exemplul Docker de mai sus, putem vedea informații despre containerele Docker: câte rulează, sunt în pauză sau sunt oprite și câte imagini au fost descărcate. Acum să obținem prima noastră imagine.

$ sudo docker pull alpine

Cu această comandă, îi spunem lui Docker să descarce imaginea alpine, extragând-o din registrul public în cea mai recentă versiune, care este setată implicit.

*alpine este o imagine Docker minimală bazată pe Alpine Linux, cu un index de pachet complet și o dimensiune de numai 5 MB.

Dacă vrem să rulăm imaginea ca un container, folosim următoarea comandă.

$ sudo docker run -i -t alpine /bin/bash

Rularea comenzii ne trimite direct la terminalul alpine. Indicatorul -i menține STDIN deschis din container chiar și atunci când nu sunteți atașat la acesta; această intrare standard persistentă este jumătate din ceea ce aveți nevoie pentru un shell interactiv. Indicatorul -t este cealaltă jumătate și instruiește Docker să atribuie un pseudo-tty containerului. Împreună, acestea ne oferă un shell interactiv în noul container. Ieșim din container cu o simplă comandă de ieșire.

Acum, în acest tutorial de bază Docker, putem încerca să rulăm un Ubuntu imagine.

$ sudo docker run -it ubuntu /bin/bash

Observați că Docker verifică imaginea local și, dacă nu există, imaginea este extrasă automat din biblioteca de imagini. Din nou, avem un shell interactiv care rulează. De asemenea, putem denumi containerele pe măsură ce le rulăm.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

Apoi ieșim din nou. Putem rula și un container creat anterior fără o shell interactivă.

$ sudo docker start container_name

Și oprim containerul scriind docker stop container_name.

$ sudo docker stop container_name

Dacă vrem să vedem toate containerele care rulează, pur și simplu rulăm următoarele.

$ docker ps

Pentru toate containerele, adăugăm „-a” la sfârșitul aceleiași comenzi, cum ar fi docker ps -a. Această comandă arată ID-ul containerului, ce imagine folosește, când a fost creat, starea sa de funcționare, porturile expuse și un nume generat aleatoriu pentru o gestionare mai ușoară.

Când rulăm containere, adesea vrem să știm câte resurse utilizează. În acest scop, putem folosi următoarea comandă.

$ docker stats

De asemenea, puteți vedea ce imagini ați descărcat local, împreună cu informații despre acestea.

$ sudo docker images

Comanda din exemplul Docker de mai sus afișează fiecare imagine Docker cu o etichetă care arată versiunea imaginii, un ID distinctiv al imaginii, data creării și dimensiunea imaginii.

Pentru a înțelege de ce containerele reprezintă o astfel de îmbunătățire, este util să analizăm cum a evoluat virtualizarea.

Ce este virtualizarea?

Anterior, implementarea unui serviciu era lentă și dificilă. Dezvoltatorii scriau cod, iar apoi echipa de operațiuni îl implementa pe mașini bare-metal, unde trebuiau să fie atenți la versiunile bibliotecii, patch-urile și compilatoarele de limbaj pentru ca codul să funcționeze. Dacă existau erori sau erori, procesul începea de la capăt: dezvoltatorii remediau problema, iar echipa de operațiuni redistribuia codul.

Lucrurile s-au îmbunătățit odată cu crearea hipervizorilor. Hipervizorii rulează mai multe mașini virtuale, sau mașini virtuale, pe aceeași gazdă, care pot fi în execuție sau oprite. Mașinile virtuale au redus considerabil timpul de așteptare pentru implementarea codului și remedierea erorilor, dar adevăratul factor de schimbare au fost containerele Docker.

Popularitatea Docker este determinată și de instrumentele de orchestrare care gestionează containerele la scară largă, cum ar fi KubernetesÎnainte de a continua, iată o scurtă referință la cele mai importante comenzi Docker.

Comenzi Docker importante

Mai jos sunt comenzile Docker importante:

Comandă Descriere
informații despre docker Comanda de informare
docker pull Descărcați o imagine
docker rulează -i -t nume_imagine /bin/bash Rulați imaginea ca container
docker pornește containerul nostru Porniți containerul
docker stop container_name Opriți containerul
docker ps Lista tuturor containerelor care rulează
statistici docker Informații despre container
portocale imagini Lista imaginilor descărcate
Docker Cleanup Omorâți toate containerele care rulează.

De asemenea, citiți acestea Întrebări și răspunsuri la interviul de angajare Docker atât pentru începători, cât și pentru profesioniști cu experiență.

Întrebări frecvente

Un container Docker partajează kernelul sistemului de operare gazdă și izolează doar aplicația, deci este ușor și pornește în câteva secunde. O mașină virtuală include un sistem de operare guest complet, ceea ce o face mai mare, mai lentă la pornire și mai intensivă în resurse.

Un fișier Dockerfile este un script text simplu care conține instrucțiuni precum FROM, RUN, COPY și CMD. Docker citește aceste instrucțiuni pentru a construi automat o imagine. Fiecare linie adaugă un strat, permițându-vă să reproduceți același mediu pe orice mașină.

Docker Compose definește și rulează aplicații multi-container folosind un singur fișier YAML. Descrii fiecare serviciu, rețea și volum o singură dată, apoi pornești totul cu comanda docker compose up. Este ideal pentru dezvoltarea locală și testarea serviciilor conectate.

Docker construiește și rulează containere individuale, în timp ce Kubernetes orchestrează mai multe containere într-un cluster. Kubernetes adaugă scalare automată, auto-reparare și echilibrare a încărcării. În practică, Docker împachetează aplicația, iar Kubernetes o gestionează în producție.

Docker Engine este gratuit și open source sub licența Apache 2.0. Docker Desktop este gratuit pentru uz personal, educație și întreprinderi mici, dar companiile mai mari au nevoie de un abonament plătit. Docker Hub oferă atât planuri gratuite, cât și plătite de găzduire a imaginilor.

Docker rulează nativ pe Linux și este suportat pe Windows și macOS prin Docker Desktop. Activat Windows și Mac, Docker folosește o mașină virtuală ușoară pentru a rula kernelul Linux necesar containerelor. Majoritatea imaginilor containerelor sunt bazate pe Linux.

Asistenții AI generează fișiere Dockerfile, fișiere docker-compose și comenzi CLI din prompturi în limbaj simplu. De asemenea, citesc jurnalele de compilare și erorile containerelor, explică cauza și sugerează remedieri. Verificați întotdeauna configurația generată pentru a verifica dacă etichetele de imagine, căile și securitatea sunt corecte înainte de a o rula.

Da. Copilotul GitHub Și ChatGPT poate crea fișiere Dockerfile și Compose pornind de la un comentariu sau o descriere scurtă. Acestea accelerează procesul standard, dar ar trebui să verificați imaginile de bază, versiunile și cele mai bune practici, deoarece fragmentele generate pot utiliza valori implicite învechite.

Rezumați această postare cu: