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.

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.

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.

10. Deschideți un nou terminal si rulați docker inspect container1. Observați rezultatul comenzii.

11. Ștergeți ambele containere în 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

14. Porniți containerele cu docker-compose.

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.1627305635.txt.gz · Last modified: 2021/07/26 16:20 by bogdan.croitoru
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