Sunteți pe pagina 1din 10

Introducere

• Ce este Docker?
Docker este o platformă de containerizare open-source. Permite dezvoltatorilor
să împacheteze aplicații în containere - componente executabile standardizate
care combină codul sursă al aplicației cu bibliotecile sistemului de operare (OS) și
dependențele necesare pentru a rula acel cod în orice mediu. Containerele
simplifică livrarea aplicațiilor distribuite și au devenit din ce în ce mai populare pe
măsură ce organizațiile trec la dezvoltarea cloud-native și medii hibride
multicloud.
Dezvoltatorii pot crea containere fără Docker, dar platforma face mai ușoară, mai
simplă și mai sigură construirea, implementarea și gestionarea containerelor.
Docker este în esență un set de instrumente care le permite dezvoltatorilor să
construiască, să implementeze, să ruleze, să actualizeze și să oprească containere
folosind comenzi simple și automatizare care economisește munca printr-un
singur API.
• Cum funcționează containerele?
Containerele sunt posibile prin izolarea proceselor și capabilitățile de virtualizare
încorporate în nucleul Linux. Aceste capabilități cum ar fi grupurile de control
(Cgroups) pentru alocarea resurselor între procese și spațiile de nume pentru a
restricționa accesul la proces sau vizibilitatea în alte resurse sau zone ale
sistemului - permit mai multor componente ale aplicației să partajeze resursele
unei singure instanțe a gazdei care operează. sistem cam în același mod în care
un hypervisor permite mai multor mașini virtuale (VM) să partajeze CPU,
memoria și alte resurse ale unui singur server hardware.
Ca rezultat, tehnologia containerelor oferă toate funcționalitățile și beneficiile
VM-urilor inclusiv izolarea aplicațiilor, scalabilitatea rentabilă și disponibilitatea
de unică folosință - plus avantaje suplimentare importante:
• Amprenta de stocare redusă: spre deosebire de mașinile virtuale,
containerele nu transportă sarcina utilă a unei întregi instanțe de sistem de
operare și a unui hypervisor; acestea includ doar procesele și dependențele
OS necesare pentru a executa codul. Dimensiunile containerelor sunt
măsurate în mega octeți (față de giga octeți pentru unele VM-uri), folosesc
mai bine capacitatea hardware și au timpi de pornire mai rapid.
• Eficiență mai mare a resurselor: cu containere, puteți rula de mai multe ori
mai multe copii ale unei aplicații pe același hardware decât puteți utiliza VM-
uri. Acest lucru vă poate reduce cheltuielile pentru cloud.
• Productivitate îmbunătățită a dezvoltatorilor: în comparație cu VM-urile,
containerele sunt mai rapide și mai ușor de implementat, furnizat și repornit.
Acest lucru le face ideale pentru utilizarea în conducte de integrare continuă
și livrare continuă (CI/CD) și o potrivire mai bună pentru echipele de
dezvoltare care adoptă practici Agile și DevOps.
• Instrumente și terminologie Docker
• Dockerfile
Fiecare container Docker începe cu un fișier text simplu care conține
instrucțiuni despre cum să construiți imaginea containerului Docker.
Dockerfile automatizează procesul de creare a imaginii Docker. Este, în esență,
o listă de instrucțiuni de interfață de linie de comandă (CLI) pe care Docker
Engine le va rula pentru a asambla imaginea.
• Imagini Docker
Imaginile Docker conțin codul sursă sau/și executabil al aplicației, precum și
toate instrumentele, bibliotecile și dependențele de care are nevoie codul
aplicației pentru a rula ca container. Când rulați imaginea Docker, aceasta
devine o instanță (sau mai multe instanțe) a containerului.
Este posibil să construiți o imagine Docker de la zero, dar cei mai mulți
dezvoltatori le trag din repo-uri comune sau publice. Mai multe imagini
Docker pot fi create dintr-o singură imagine de bază și vor împărtăși
elementele comune ale stivei lor.
Imaginile Docker sunt formate din straturi, iar fiecare strat corespunde unei
versiuni a imaginii. Ori de câte ori un dezvoltator face modificări la imagine,
este creat un nou strat superior, iar acest strat superior înlocuiește stratul
superior anterior ca versiunea curentă a imaginii. Straturile anterioare sunt
salvate pentru rollback sau pentru a fi reutilizate în alte proiecte.
De fiecare dată când un container este creat dintr-o imagine Docker, este
creat un alt strat nou numit strat de container. Modificările aduse
containerului, cum ar fi adăugarea sau ștergerea fișierelor, sunt salvate numai
în stratul container și există numai în timp ce containerul rulează. Acest
proces iterativ de creare a imaginilor permite o eficiență generală crescută,
deoarece mai multe instanțe de container live pot rula dintr-o singură
imagine de bază și, atunci când fac acest lucru, folosesc o stivă comună..
• Containere Docker
Containerele Docker sunt instanțele live ale imaginilor Docker. În timp ce în
imaginile Docker sunt fișiere doar pentru citire, containerele sunt conținut
live, efemer, executabil. Utilizatorii pot interacționa cu ei, iar administratorii își
pot ajusta setările și condițiile folosind comenzile docker.

• Hub-ul Docker
Hub-ul Docker (https://hub.docker.com/) este depozitul public de imagini
Docker care s-a autointitulat „cea mai mare bibliotecă și comunitate din lume
pentru imagini container”. Deține peste 100.000 de imagini container
provenite de la furnizori comerciali de software, proiecte open-source și
dezvoltatori individuali. Include imagini care au fost produse de Docker, Inc.,
imagini certificate aparținând Docker Trusted Registry și multe mii de alte
imagini.
Toți utilizatorii Hub-ului Docker își pot partaja imaginile după bunul plac. De
asemenea, pot descărca imagini de bază predefinite din sistemul de fișiere
Docker pentru a le utiliza ca punct de plecare pentru orice proiect de
containerizare
• Daemon-ul Docker
Daemon-ul Docker este un serviciu care rulează pe sistemul dvs. de operare,
cum ar fi Microsoft Windows sau Apple macOS sau Linux. Acest serviciu
creează și gestionează imaginile dvs. Docker pentru dvs. folosind comenzile
de la client, acționând ca centru de control al implementării dvs. Docker.

• Registrul Docker
Un registru Docker este un sistem de stocare și distribuție open-source
scalabil pentru imaginile docker. Registrul vă permite să urmăriți versiunile de
imagini în depozite, folosind etichetarea pentru identificare. Acest lucru se
realizează folosind git, un instrument de control al versiunilor

Deploying your first Docker container


• Searching for a container on current registry

• Running a container

• Finding running containers

• Accessing Redis

• Accessing Redis

• Persisting Data

• Running a container in the foreground

Deploy a static HTML website as container


• Running a container in the foreground

• Build docker image


• Run container

Building container images


• Creating Dockerfile

• Building the image

• Launching the new image

Dockerizing Node.js applications


• Creating the Dockerfile

• Building & launching the container

• Environment variables

Optimizing Dockerfile with OnBuild


• OnBuild Dockerfile

• Application Dockerfile

• Building and launching the container


Ignoring Files
• Docker ignore

• Ignore File

• Docker build context

• Optimized build

Data containers
• Create container

• Copy files

• Mount volumes from


• Export / Import Containers

Communicating between containers


• Start data store (Redis)

• Create link

• Connect to app

• Connect to Redis CLI

Docker Networks
• Create network

• Network communication

• Connect two containers

• Create aliases

• Disconnect containers

Persisting data using volumes


• Data volumes

• Shared volumes
• Read-only volumes

Manage container log files


• Docker logs

• SysLog

• Disable logging

Ensuring uptime
• Stop on fail

• Restart on fail

• Always restart

Docker Metadata & Labels


• Docker containers

• Docker images

• Inspect

• Query by label
Load balancing containers
• NGINX Proxy

• Single host

• Cluster

• Generated NGINX configuration

Orchestrating using Docker Compose


• Defining first container

• Defining settings

• Defining second container

• Docker up

• Docker management

• Docker scale

• Docker stop
Docker stats
• Single container

• Multiple containers

Creating optimized Docker images using multi-stage builds


• Create Dockerfile

• Build multi-stage docker image

• Test image

Formatting PS output
• Example: names and images as tables

Rootless docker
• Create Ubuntu user

• Install rootless docker

• Access docker
• Run containers

Getting started with swarm mode


• Initialize swarm mode

• Join cluster

• Create overlay network

• Deploy service

• Inspect state

Rezumat Sistem

S-ar putea să vă placă și