Sunteți pe pagina 1din 17

Cloud Computing

Laborator 1
Administrative
● Radu-Ioan Ciobanu - radu.ciobanu@cs.pub.ro
● Ore laborator (lunea, PR606):
○ 12-14 - SSA
○ 14-16 - SSA
○ 16-18 - eGov
○ 20-22 - eGov
○ studentii pot veni in oricare interval (indiferent de Master)
○ prezența nu este obligatorie
Administrative (2)
● Desfășurare:
○ săptămâna 2 - introducere în Docker (instalare, rularea unui container, crearea
unei imagini pentru un container)

○ săptămâna 3 - publicarea unui container, servicii, swarm-uri

○ săptămâna 4 - stack, aplicație de vot

○ săptămânile 5-7 - familiarizare cu Docker, alegere temă proiect (deadline 12


noiembrie)

○ săptămânile 8-12 - lucru la proiect

○ săptămânile 13-14 - prezentarea finală a proiectului


Proiect
● Aplicație cloud în Docker
● Punctaj:
○ 4 puncte pentru implementare
○ 1 punct bonus pentru deployment într-un sistem Cloud
(Amazon Web Services, Microsoft Azure, Google
Container Engine, etc.)
Proiect (2)
● Se recomandă pornirea de la exemplul de aplicație de vot
https://github.com/dockersamples/example-voting-app
Laborator 1
● Introducere
● Instalare
● Rularea unui container
● Crearea unui container
● Comenzi utile
Introducere
● Docker
○ platformă de containere software, folosită pentru a împacheta și rula aplicații atât
local, cât și pe sisteme Cloud

○ oferă un strat adițional de abstractizare și automatizare a virtualizării la nivel de


sistem de operare

○ permite unor containere independente să ruleze într-o singură instanță de Linux,


evitând overhead-ul cauzat de pornirea și menținerea mașinilor virtuale

○ containerele Docker au la bază imagini, care sunt pachete executabile de sine


stătătoare ce conțin tot ce este necesar pentru rularea unor aplicații software (cod,
runtime, biblioteci, variabile de mediu, fișiere de configurare)
Introducere (2)
● Docker
○ un container este o instanță a unei imagini

○ rulează complet izolat de mediul gazdă, accesând fișiere și porturi ale acestuia doar
dacă este configurat să facă acest lucru

○ containerele rulează aplicații nativ pe kernel-ul mașinii gazdă, având performanțe


mai bune decât mașinile virtuale (care au acces la resursele gazdei prin intermediul
unui hipervizor)

○ containerele au acces nativ, fiecare rulând într-un proces discret, necesitând tot
atât de multă memorie cât orice alt executabil
Introducere (3)
Instalare
● Docker este disponibil în două variante:
○ Community Edition (CE) - pentru dezvoltatori și echipe mici, acces gratuit

○ Enterprise Edition (EE) - pentru companii care rulează aplicații pe scară largă, acces
cu subscripție

● Disponibil pe mai multe sisteme de operare:


○ desktop - Windows, macOS

○ Cloud - Amazon Web Services, Microsoft Azure, etc.

○ server - CentOS, Fedora, Ubuntu, Windows Server 2016, etc.


Instalare (2)
● Exemplu de comenzi pentru instalare pe Ubuntu:
$ sudo apt-get update

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

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

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


-cs) stable"

$ sudo apt-get update

$ sudo apt-get install docker-ce

● https://docs.docker.com/engine/installation/
Instalare (3)
● Verificarea instalării corecte:
$ docker container run hello-world

● Pașii făcuți de Docker la rularea unui container:


○ dacă imaginea dorită nu există local, este descărcată
○ se creează un container nou pe baza imaginii
○ se rulează containerul
Rularea unui container
● Docker Store:
○ registru public care conține software de încredere și gratuit
distribuit ca imagini Docker
○ sisteme de operare (Ubuntu, Alpine, Amazon Linux, etc.)
○ limbaje de programare (Java, Ruby, Perl, Python, etc.)
○ servere Web (NGINX, Apache, etc.)
○ etc.
Rularea unui container (2)
● Alpine Linux
$ docker image pull alpine

$ docker image ls

$ docker container run alpine ls -l

$ docker container run -it alpine

$ docker container ls -a

$ docker container run -d -it alpine

$ docker attach <ID>

$ docker stop <ID>

$ docker rm <ID>
Crearea unui container
● Pașii necesari pentru crearea unui container:
○ Scrierea unei aplicații
○ Crearea unui fișier Dockerfile:
■ specifică ce se întâmplă în interiorul containerului

■ putem specifica mapări de porturi, fișiere care vor fi copiate în container când
este pornit, etc.

○ Construirea imaginii
Crearea unui container (2)
$ docker build -t testapp .

$ docker images

$ docker image inspect testapp

$ docker container run -p 8888:5000 testapp

● http://127.0.0.1:8888
Comenzi utile
$ docker image pull <IMAGE> # descarca o imagine dintr-un registru

$ docker container run <NAME> [COMMAND] # ruleaza un container

$ docker image ls # arata o lista cu imaginile prezente local

$ docker container run -it <NAME> # ruleaza un container in mod interactiv

$ docker container run -d <NAME> # ruleaza un container in background (ca daemon)

$ docker container ls -a # arata o lista cu toate containerele rulate pe sistem

$ docker attach <ID> # se ataseaza la un container

$ docker stop <ID> # opreste un container

$ docker rm <ID> # sterge un container

$ docker build -t <TAG> . # construieste o imagine

$ docker images # afisează o lista cu imaginile existente pe sistem

$ docker image inspect <TAG> # afiseaza informatii despre o imagine

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