Differences

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

Link to this comparison view

devops:laboratoare:04 [2021/05/24 17:37]
127.0.0.1 external edit
devops:laboratoare:04 [2022/07/27 15:59] (current)
bogdan.croitoru
Line 1: Line 1:
-===== Laboratorul 04. =====+===== Hands-on session 2/2 - part 3/3 =====
  
 +1. Scrieți un script bash care afișează în terminal un mesaj de întâmpinare care să conțină numele vostru.
 +
 +<note tip>
 +  * nu uitati sa verificati ca script-ul are drepturi de executie
 +  * nu uitati nici partea de "​shebang"​
 +  * pentru a verifica sintaxa unui script "​test.sh",​ puteti rula comanda "bash -n test.sh"​
 +</​note>​
 +
 +2. Creați un Dockerfile pentru o imagine bazată pe <​DEBUGBOX>​ care să conțină scriptul vostru în calea /opt/ și care să creeze un utilizator cu același ID ca utilizatorul vostru de pe gazdă cu tot cu directorul său home.
 +<note tip>
 +Exemplu comandă pentru adăugarea unui utilizator:
 +''​useradd --create-home --shell /bin/bash --uid 1432 --user-group devops''​
 +</​note>​
 +
 +3. Construiți imaginea Docker cu acest Dockerfile cu următorul nume: ubuntu-student#​x:​latest.
 +
 +4. Porniți un container din această imagine care să aibă un nume, să se autodistrugă la încetarea sa și care să ruleze scriptul vostru.
 +
 +5. Porniți un container din imagine cu un terminal interactiv si rulați scriptul manual în interiorul lui.
 +
 +6. Identificați,​ opriți și ștergeți containerul creat anterior.
 +
 +7. Creați și porniți un nou container numit ‘container1’ cu un terminal interactiv care să mapeze directorul /​home/​student#​x al gazdei în container peste calea home a utilizatorului creat și folosind ID-ul utilizatorului la pornire.
 +<note tip> Docker permite specificarea utilizatorului cu care va porni containerul prin parametrul ''​-u''​ (care așteaptă un ID). </​note>​
 +
 +8. Navigați în container la calea ~/ , creați un fișier acolo și verificați ce s-a întamplat pe mașina gazdă.
 +
 +9. Într-un nou terminal porniți un alt container numit container2 cu același utilizator, dar fără a monta calea home. Aflați adresele IP pentru container1 și container2 și executați comanda "​ping"​ pentru a ajunge dintr-un container în altul.
 +
 +<​note>​ Prin ce comanda se pot afla IP-urile de pe interfetele unei masini? </​note>​
 +
 +10. Deschideți un nou terminal si rulați docker inspect container1. Observați rezultatul comenzii.
 +
 +11. Ștergeți ambele containere folosind aceeași comandă.
 +
 +12. Instalați docker-compose în ~/bin/. Adăugați în PATH această cale.
 + cd ~
 + mkdir bin
 + curl -L "​https://​github.com/​docker/​compose/​releases/​download/​1.29.2/​docker-compose-$(uname -s)-$(uname -m)" -o bin/
 +        export PATH=$PATH:/​home/​student#​x/​bin
 +
 +<note tip>
 +PATH este o variabila default care contine o lista de locatii in care sunt cautate binarele pe care le executam; locatiile sunt verificate secvential, adaugand una la inceput ea va fi verificata prima; in cazul de mai sus, se va folosi ultima pentru ca binarul de docker-compose nu exista in celelalte
 +</​note>​
 +
 +13. Scrieți un fișier docker-compose.yml în care descrieți un container cu următoarele cerințe:
 + - Nume: student#x
 + - Imagine: ubuntu-student#​x:​latest
 + - Porturi: 8080 al containerului corespunde cu 8080 al gazdei
 + - Variabile de mediu: STUDENT cu valoarea numele vostru
 + - Politica de restart: never
 +Și un al doilea container:
 + - Nume: devops-summer-school
 + - Imagine: ubuntu-student#​x:​latest
 + - Porturi: 8080 al containerului corespunde cu 9090 al gazdei
 + - Variabile de mediu: STUDENT cu valoarea numele vostru
 + - Politica de restart: always
 +<​note>​ Luați exemplul prezentat drept model </​note>​
 +
 +14. Porniți containerele cu docker-compose.
 +<note tip> Folosiți funcția de help a comenzii docker-compose pentru a afla ce operații puteți executa </​note>​
 +
 +15. Afișați lista de containere aflate în rulare folosind utilitarul docker, iar apoi folosind utilitarul docker-compose.
 +
 +16. Conectați-vă la containerele create și executați comanda ps. Ce diferă față de mașina gazdă?
 +
 +17. Opriți containerele create folosind utilitarul docker-compose.
 +
 +
 +(bonus)18. ​ Recreați containerul container1, generați o pereche de chei ssh în container1 și folosiți-le pentru a deschide o conexiune ssh din container1 către mașina gazdă folosind mai multe adrese IP (verificați adresele IP ale gazdei).
  
devops/laboratoare/04.1621867068.txt.gz · Last modified: 2021/07/26 14:50 (external edit)
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