Differences

This shows you the differences between two versions of the page.

Link to this comparison view

idp:laboratoare:01 [2021/03/12 10:40]
radu.ciobanu [Exerciții]
idp:laboratoare:01 [2022/03/07 15:12] (current)
radu.ciobanu [Instalare]
Line 9: Line 9:
 De asemenea, Docker oferă flexibilitate maximă. Dacă, într-un proiect de mari dimensiuni, avem nevoie de unelte software noi pentru că se schimbă anumite cerințe, le putem împacheta în containere și apoi să le legăm foarte ușor la sistem. Dacă avem nevoie de replicarea infrastructurii pe alt mediu, putem refolosi imaginile de Docker salvate în registru (un fel de repository de containere). Dacă avem nevoie de actualizarea anumitor componente, Docker ne permite să rescriem imaginile, ceea ce înseamnă că se vor lansa, mereu, cele mai noi versiuni ale componentelor sub formă de containere. De asemenea, Docker oferă flexibilitate maximă. Dacă, într-un proiect de mari dimensiuni, avem nevoie de unelte software noi pentru că se schimbă anumite cerințe, le putem împacheta în containere și apoi să le legăm foarte ușor la sistem. Dacă avem nevoie de replicarea infrastructurii pe alt mediu, putem refolosi imaginile de Docker salvate în registru (un fel de repository de containere). Dacă avem nevoie de actualizarea anumitor componente, Docker ne permite să rescriem imaginile, ceea ce înseamnă că se vor lansa, mereu, cele mai noi versiuni ale componentelor sub formă de containere.
  
 +<note tip>
 +Docker este o variantă foarte bună ca mediu de lucru, cele mai multe IDE-uri cum ar fi Visual Studio, VSCode sau IntelliJ, au integrat suport pentru debugging în Docker fie în mod implicit fie ca plugin. Motivul pentru care cele mai folosite IDE-uri ofera acest suport este ca imaginile de Docker reprezinta un mediu de lucru replicabil și consistent identic cu cel de productie.
 +</​note>​
 ==== Imagini și containere ==== ==== Imagini și containere ====
  
Line 33: Line 36:
 Comenzile de mai jos sunt pentru Ubuntu. Pentru alte variante de Linux (Debian, CentOS, Fedora), găsiți informații suplimentare pe pagina de documentație oficială Docker. Comenzile de mai jos sunt pentru Ubuntu. Pentru alte variante de Linux (Debian, CentOS, Fedora), găsiți informații suplimentare pe pagina de documentație oficială Docker.
  
-Pentru instalarea Docker CE, este nevoie de una din următoarele versiuni de Ubuntu: ​Focal 20.04 (LTS)Disco 19.04, Cosmic 18.10, Bionic 18.04 (LTS), ​Xenial 16.04 (LTS). Docker CE are suport pentru arhitecturile **//​x86_64//​**,​ **//​amd64//​**,​ **//​armhf//​**,​ **//​arm64//​****//​s390x//​** (IBM Z) și **//​ppc64le//​** (IBM Power).+Pentru instalarea Docker CE, este nevoie de una din următoarele versiuni de Ubuntu: ​Impish 21.10Hirsute 21.04, Focal 20.04 (LTS), ​Bionic 18.04 (LTS). Docker CE are suport pentru arhitecturile **//​x86_64//​**,​ **//​amd64//​**,​ **//​armhf//​**,​ **//​arm64//​** ​și **//​s390x//​** (IBM Z).
    
-Varianta recomandată de instalare a Docker CE presupune folosirea repository-ului oficial, deoarece update-urile sunt apoi instalate automat. La prima instalare a Docker CE pe o mașină, este necesară inițializarea repository-ului ​(exemplul de mai jos este pentru un sistem cu arhitectură **//​amd64//​**):+Varianta recomandată de instalare a Docker CE presupune folosirea repository-ului oficial, deoarece update-urile sunt apoi instalate automat. La prima instalare a Docker CE pe o mașină, este necesară inițializarea repository-ului:​
  
 <code bash> <code bash>
Line 42: Line 45:
  
 <code bash> <code bash>
-$ sudo apt-get install ​apt-transport-https ​ca-certificates curl software-properties-common+$ sudo apt-get install ca-certificates curl gnupg lsb-release
 </​code>​ </​code>​
  
 <code bash> <code bash>
-$ curl -fsSL https://​download.docker.com/​linux/​ubuntu/​gpg | sudo apt-key add -+$ curl -fsSL https://​download.docker.com/​linux/​ubuntu/​gpg | sudo gpg --dearmor -o /​usr/​share/​keyrings/​docker-archive-keyring.gpg
 </​code>​ </​code>​
  
 <code bash> <code bash>
-sudo add-apt-repository ​"deb [arch=amd64] https://​download.docker.com/​linux/​ubuntu $(lsb_release -cs) stable"​+echo \ 
 +  ​"deb [arch=$(dpkg --print-architecture) signed-by=/​usr/​share/​keyrings/​docker-archive-keyring.gpg] https://​download.docker.com/​linux/​ubuntu ​
 +  ​$(lsb_release -cs) stable" ​| sudo tee /​etc/​apt/​sources.list.d/​docker.list > /dev/null
 </​code>​ </​code>​
  
Line 482: Line 487:
 Alternativ, în loc să rulăm comanda de publicare a unei imagini de fiecare dată când modificăm ceva la codul sursă, putem să configurăm [[https://​docs.docker.com/​docker-hub/​builds/​|build-uri automate]] din contul de Docker Hub. Pașii necesari sunt descriși în continuare. Alternativ, în loc să rulăm comanda de publicare a unei imagini de fiecare dată când modificăm ceva la codul sursă, putem să configurăm [[https://​docs.docker.com/​docker-hub/​builds/​|build-uri automate]] din contul de Docker Hub. Pașii necesari sunt descriși în continuare.
 În primul rând, este necesară existența unui repository Docker Hub și a unui repository pe GitHub (Docker Hub funcționează și cu BitBucket, dar în acest exemplu ne vom concentra pe GitHub). Toate fișierele necesare creării unei imagini Docker (adică Dockerfile-ul și toate fișierele sursă și de configurare) trebuie să fie prezente în repository-ul GitHub. Mai departe, de pe pagina repository-ului de Docker Hub, se selectează tab-ul Builds și apoi opțiunea „Configure Automated Builds”, așa cum se poate observa în imaginea de mai jos. În primul rând, este necesară existența unui repository Docker Hub și a unui repository pe GitHub (Docker Hub funcționează și cu BitBucket, dar în acest exemplu ne vom concentra pe GitHub). Toate fișierele necesare creării unei imagini Docker (adică Dockerfile-ul și toate fișierele sursă și de configurare) trebuie să fie prezente în repository-ul GitHub. Mai departe, de pe pagina repository-ului de Docker Hub, se selectează tab-ul Builds și apoi opțiunea „Configure Automated Builds”, așa cum se poate observa în imaginea de mai jos.
 +
 +<note tip>
 +Dacă lucrați la proiecte cu cod aflat pe repository-uri de git este de preferat să folosiți registrele de pe aceleși platforme în loc de Docker Hub, iar Github, Gitlab și Bitbucket ofera registre de imagini gratis. ​
 +</​note>​
  
 {{:​idp:​laboratoare:​dockerhub.png?​direct&​600|}} {{:​idp:​laboratoare:​dockerhub.png?​direct&​600|}}
Line 968: Line 977:
 <note tip>​Pentru exercițiile următoare, veți porni de la {{:​idp:​laboratoare:​homework2.zip|această arhivă}}, care conține o aplicație NodeJS care realizează un API de adăugare de cărți într-o bibliotecă peste o bază de date PostgreSQL. Exercițiile de mai jos vă trec prin pașii necesari pentru a rula un container pentru o bază de date PostgreSQL și containerul cu aplicația în aceeași rețea, având persistență la oprirea containerelor.</​note>​ <note tip>​Pentru exercițiile următoare, veți porni de la {{:​idp:​laboratoare:​homework2.zip|această arhivă}}, care conține o aplicație NodeJS care realizează un API de adăugare de cărți într-o bibliotecă peste o bază de date PostgreSQL. Exercițiile de mai jos vă trec prin pașii necesari pentru a rula un container pentru o bază de date PostgreSQL și containerul cu aplicația în aceeași rețea, având persistență la oprirea containerelor.</​note>​
  
-  - Pe baza surselor și a fișierului Dockerfile din arhiva de laborator, construiți o imagine cu numele (tag-ul) **api-laborator-1-image**.+  - Pe baza surselor și a fișierului Dockerfile din arhiva de laborator, construiți o imagine cu numele (tag-ul) **//api-laborator-1-image//**.
   - Creați o rețea bridge numită **//​laborator1-db-network//​**.   - Creați o rețea bridge numită **//​laborator1-db-network//​**.
   - Creați un volum numit **//​laborator1-db-persistent-volume//​**.   - Creați un volum numit **//​laborator1-db-persistent-volume//​**.
idp/laboratoare/01.1615538448.txt.gz · Last modified: 2021/03/12 10:40 by radu.ciobanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0