This is an old revision of the document!


Laboratorul 04. Docker

1. Scrieți un script bash care afișează în terminal un mesaj de întâmpinare care să conțină numele vostru.

  • 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”

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.

Exemplu comandă pentru adăugarea unui utilizator: useradd –create-home –shell /bin/bash –uid 1432 –user-group devops

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.

Docker permite specificarea utilizatorului cu care va porni containerul prin parametrul -u (care așteaptă un ID).

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.

Prin ce comanda se pot afla IP-urile de pe interfetele unei masini?

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

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

13. Scrieți un fișier docker-compose.yml în care descrieți un container cu următoarele cerințe:

  1. Nume: student#x
  2. Imagine: ubuntu-student#x:latest
  3. Porturi: 8080 al containerului corespunde cu 8080 al gazdei
  4. Variabile de mediu: STUDENT cu valoarea numele vostru
  5. Politica de restart: never

Și un al doilea container:

  1. Nume: devops-summer-school
  2. Imagine: ubuntu-student#x:latest
  3. Porturi: 8080 al containerului corespunde cu 9090 al gazdei
  4. Variabile de mediu: STUDENT cu valoarea numele vostru
  5. Politica de restart: always

Luați exemplul prezentat drept model

14. Porniți containerele cu docker-compose.

Folosiți funcția de help a comenzii docker-compose pentru a afla ce operații puteți executa

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.1627307121.txt.gz · Last modified: 2021/07/26 16:45 by oana.minciu.th
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