ITEH Docker

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/97

flashcard set

Earn XP

Description and Tags

Docker skripta i Docker Compose skripta

98 Terms

1
New cards

[POJAM] Šta je Docker prema definiciji iz skripte?

Skup PaaS (Platform as a Service) proizvoda koji koriste virtuelizaciju na nivou OS-a za isporuku softvera u paketima zvanim kontejneri. Prvi put pokrenut 2013, razvio ga Docker, Inc.

2
New cards

[POJAM] Razlika između Docker slike (image) i kontejnera?

Slika = upakovan softver sa svim zavisnostima (temelj za kontejner).

Kontejner = pokrenuta instanca slike (izolovano okruženje).

3
New cards

[POJAM] Šta je Docker Registry?

Javni ili privatni registar za skladištenje i deljenje slika (npr. Docker Hub).

4
New cards

[POJAM] Šta je Docker Daemon, a šta Docker Client?

Daemon = pozadinski proces koji upravlja kontejnerima.

Client = šalje komande daemon-u (lokalno ili na udaljenom serveru).

CLI = korisnički interfejs za slanje komandi.

5
New cards

[VIŠE TAČNIH] Koje su komponente Docker arhitekture?

A) Docker Daemon

B) Docker CLI

C) Docker Client

D) Docker Images

E) Docker Containers

F) Docker Registry

G) Docker Compiler

Tačno: A, B, C, D, E, F. Netačno: G (ne postoji).

6
New cards

[POJAM] Šta znače tagovi kod slika i šta ako se tag ne navede?

Tag razlikuje verzije iste slike. Ako se ne navede, podrazumevano je latest. U praksi se preporučuje izbegavati latest i navesti eksplicitnu verziju.

7
New cards

[POJAM] Kako radi keširanje (cache invalidation) pri izradi slike?

Svaka instrukcija u Dockerfile-u = jedan sloj (layer). Docker koristi keš za korake koji se nisu menjali. Kad se nešto promeni (npr. server.js ili package.json), keš se poništava za taj korak i svi koraci posle njega se ponovo izvršavaju.

8
New cards

[POJAM] Razlika između ARG i ENV u Dockerfile-u?

ARG = promenljive samo u fazi izgradnje (build) slike, nisu dostupne u pokrenutom kontejneru. ENV = environment promenljive dostupne i u Dockerfile-u i u pokrenutom kontejneru (aplikaciji tokom izvršavanja).

9
New cards

[POJAM] Koja je glavna svrha volumena u Dockeru?

Perzistentno čuvanje podataka (van životnog veka kontejnera) i deljenje podataka između kontejnera i host mašine.

10
New cards

[VIŠE TAČNIH] Koje vrste volumena postoje?

A) Anonimni (anonymous)

B) Imenovani (named)

C) Bind-mount

D) Snapshot volumen

Tačno: A, B, C. Netačno: D (ne postoji).

11
New cards

[POJAM] Razlika između anonimnih i imenovanih volumena?

Anonimni = nemaju ime, Docker ih kreira kad se kontejner pokrene, a uništavaju se kad se kontejner zaustavi (ako se koristi --rm ili ako se obriše).

Imenovani = imaju ime i ostaju na sistemu i nakon zaustavljanja ili brisanja kontejnera, idealni za trajnu perzistenciju i deljenje.

12
New cards

[POJAM] Šta je bind-mount?

Povezivanje direktorijuma sa host mašine direktno u kontejner: -v HOST_MACHINE_PATH:PATH_IN_CONTAINER

13
New cards

[POJAM] Problem sa node_modules kad se bind-mount-uje /app, i rešenje?

Bind-mount prekrije /app pa se node_modules iz slike izgubi/poremeti. Rešenje: dodatni izolovani (anonimni) volumen -v /app/node_modules. Pobeđuje volumen sa specifičnijom putanjom u kontejneru.

14
New cards

[VIŠE TAČNIH] Koji su Docker mrežni drajveri?

A) bridge

B) host

C) none

D) overlay

E) macvlan / ipvlan

F) tunnel

Tačno: A, B, C, D, E. Netačno: F (ne postoji).

15
New cards

[POJAM] Karakteristika drajvera bridge?

Podrazumevani drajver. Povezuje kontejnere na istoj host mašini, mogu komunicirati međusobno i sa hostom, uz pristup internetu.

16
New cards

[POJAM] Karakteristika drajvera host?

Kontejner deli mrežu i IP adresu direktno sa host mašinom (nema mrežne izolacije).

17
New cards

[POJAM] Karakteristika drajvera none?

Kontejner je potpuno izolovan: nema mrežnu vezu ni pristup internetu.

18
New cards

[POJAM] Karakteristika drajvera overlay?

Povezuje više Docker daemon-a, pa kontejneri komuniciraju preko više host mašina (klasteri, skaliranje).

19
New cards

[POJAM] Karakteristika drajvera ipvlan / macvlan?

Dodeljuju kontejnerima direktne IP ili MAC adrese (napredne mrežne integracije).

20
New cards

[POJAM] Prednost povezivanja kontejnera preko imena servisa umesto IP adresa?

IP adrese se mogu promeniti pri restartu. Docker unutar kreirane mreže sam rešava imena (npr. host: 'mysql-server'), pa ne treba menjati kod ni rekreirati slike.

21
New cards

[POJAM] Kako kontejner komunicira sa bazom na host mašini?

Umesto localhost koristi IP adresu hosta (npr. docker0 most, 172.17.0.1), uz podešavanje MySQL-a: bind-address = 0.0.0.0

22
New cards

[VIŠE TAČNIH] Šta se vidi izvršavanjem docker inspect nad kontejnerom?

A) State

B) ID i ime

C) NetworkSettings

D) Env

E) Portovi (ExposedPorts, PortBindings)

F) Mounts (volumeni)

G) Lozinka Docker Hub naloga

Tačno: A, B, C, D, E, F. Netačno: G.

23
New cards

[POJAM] Čemu služi docker inspect?

Detaljne specifikacije i metapodaci o slici ili kontejneru (JSON: mreže, env varijable, komande, slojevi…).

24
New cards

[KOD] Komanda za izgradnju slike iz Dockerfile-a (sintaksa)?

docker build -t IME_SLIKE:OZNAKA PUTANJA_DO_DOCKERFAJLA

(npr. docker build -t wishlist-app .)

-t = ime i tag,

tačka = trenutni direktorijum.

Razmak pre tačke je obavezan!

25
New cards

[KOD] Dopuni: docker build ____ wishlist-app .

-t

26
New cards

[KOD] Brisanje slike koju ne koristi nijedan kontejner?

docker rmi IMAGE[:TAG] (ili docker rmi ID_slike)

27
New cards

[KOD] Prinudno brisanje slike koju koristi kontejner?

docker rmi -f IMAGE[:TAG] ili docker rmi --force IMAGE[:TAG] (briše sliku, ali ne i kontejner, može izazvati čudno ponašanje)

28
New cards

[KOD] Kako se menja oznaka (tag) postojeće slike?

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

29
New cards

[KOD] Osnovna sintaksa docker run?

docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG…]

30
New cards

[KOD] Šta radi docker run -it ubuntu bash?

Pokreće kontejner na Ubuntu slici u interaktivnom režimu (-it) i pokreće bash ljusku u njemu, pa korisnik direktno radi u kontejneru.

31
New cards

[KOD] Mapiranje portova: sintaksa i značenje -p 8080:80?

-p HOST_PORT:CONTAINER_PORT. Port 80 u kontejneru je mapiran na port 8080 na hostu, pristup preko localhost:8080.

32
New cards

[KOD] Dopuni da se port 80 kontejnera mapira na 8080 hosta: docker run ____ wishlist-app

-p 8080:80

33
New cards

[KOD] Komanda za prikaz pokrenutih kontejnera?

docker ps

34
New cards

[KOD] Komanda za prikaz svih kontejnera (i zaustavljenih)?

docker ps -a ili docker ps --all

35
New cards

[KOD] Komanda za zaustavljanje kontejnera?

docker stop CONTAINER_ID_or_NAME (npr. docker stop d6b ili docker stop distracted_moore)

36
New cards

[POJAM] Razlika između docker stop i docker rm?

stop = zaustavlja proces u kontejneru.

rm = trajno briše kontejner (ne može se obrisati pokrenut kontejner, prvo se mora zaustaviti).

37
New cards

[KOD] Šta radi opcija -a u docker start -a?

attach: prikazuje izlaz (output/logs) kontejnera u trenutnom terminalu pri ponovnom pokretanju.

38
New cards

[POJAM] Čemu služi docker attach?

Priključuje terminal na već pokrenut kontejner (interaktivna sesija). Pažnja: Ctrl+C može zaustaviti proces u kontejneru.

39
New cards

[KOD] Opcija docker run koja automatski briše kontejner kad se zaustavi?

--rm (npr. docker run --rm -d …)

40
New cards

[KOD] Sintaksa za imenovani volumen u docker run?

-v VOLUME_NAME:PATH_IN_CONTAINER

(npr. -v message:/app/message)

41
New cards

[KOD] Dopuni da se imenovani volumen message mapira na /app/message:

docker run ____ IMAGE

-v message:/app/message

42
New cards

[KOD] Sintaksa za bind-mount u docker run?

-v HOST_MACHINE_PATH:PATH_IN_CONTAINER

(npr. -v C:\Users\Aleksa\Desktop\projekat:/app)

43
New cards

[KOD] Prikaz svih Docker volumena?

docker volume ls

44
New cards

[KOD] Brisanje volumena feedback?

docker volume rm feedback

45
New cards

[KOD] Kreiranje nove mreže (npr. app-network)?

docker network create app-network

46
New cards

[KOD] Prikaz svih mreža?

docker network ls

47
New cards

[KOD] Naknadno priključivanje kontejnera na postojeću mrežu?

docker network connect naziv-mreze naziv-kontejnera

48
New cards

[KOD] Pokretanje kontejnera na specifičnoj mreži?

docker run --name fav4 -d --network app-network …

49
New cards

[KOD] Provera IP adrese docker0 mosta na Linuxu?

ip addr show docker0

50
New cards

[KOD] Kako naći IP adresu drugog kontejnera?

docker container inspect naziv-kontejnera

(polje IPAddress, npr. 172.17.0.3)

51
New cards

[KOD] Provera baza i korisnika u MySQL kontejneru (interaktivno)?

docker exec -it mysql-server mysql -uroot -p

52
New cards

[KOD] Pokretanje compose aplikacije u pozadini (detached)?

sudo docker compose up -d

53
New cards

[KOD] Dopuni: sudo docker compose ____ -d

up

54
New cards

[KOD] Gašenje i brisanje kontejnera i mreža iz Compose-a, UKLJUČUJUĆI volumene?

sudo docker compose down -v ili docker compose down --volumes

55
New cards

[KOD] Gašenje i brisanje kontejnera i mreža iz Compose-a (bez volumena)?

sudo docker compose down

56
New cards

[KOD] Provera verzije Docker Compose-a?

sudo docker compose version

57
New cards

[POJAM] Šta je Docker Compose?

Alat za definisanje i pokretanje multi-kontejnerskih aplikacija. Sve (slike, kontejneri, volumeni, mreže) definiše se u jednom YAML fajlu i pokreće jednom komandom.

58
New cards

[POJAM] Docker Compose: plugin ili standalone?

Plugin (docker compose), ugrađen direktno u Docker CLI.

59
New cards

[POJAM] Preferirani naziv Compose fajla i alternative?

Preferirano: compose.yaml. Podržani su i docker-compose.yaml i docker-compose.yml (zbog kompatibilnosti unazad).

60
New cards

[VIŠE TAČNIH] Osnovna pravila YAML sintakse?

A) key: value, razmak posle dvotačke je obavezan

B) Podvrednosti se uvlače razmacima

C) Crtica (-) označava element liste

D) Komentari se pišu sa tarabom #

E) Komentari se pišu sa //

F) Uvlačenje se radi tabulatorom

Tačno: A, B, C, D. Netačno: E (tačno: komentar je #), F (tačno: uvlači se razmacima).

61
New cards

[POJAM] Šta je top-level opcija name u compose.yaml?

Naziv projekta. Ako nije definisana, ime se dodeljuje prema nazivu root foldera.

62
New cards

[POJAM] Kako se definiše imenovani volumen u compose.yaml (2 koraka)?

1) Pod top-level ključem volumes (npr. mysql-data:).

2) Referenciranje unutar servisa pod njegovim volumes (npr. - mysql-data:/var/lib/mysql).

63
New cards

[POJAM] Čemu služi env_file?

Učitavanje environment promenljivih iz eksterne datoteke (npr. - ./env/mysql.env).

64
New cards

[KOD] Kako se fajl montira kao read-only?

Dodavanjem :ro na kraj putanje: - ./db/my.cnf:/etc/mysql/conf.d/my-custom.cnf:ro

65
New cards

[KOD] Dopuni da bind-mount bude read-only: - ./db/my.cnf:/etc/mysql/conf.d/my-custom.cnf____

:ro

66
New cards

[POJAM] Da li docker compose down briše volumene i imidže?

Ne. Gasi i briše kontejnere i mreže. Imidži i imenovani volumeni ostaju (volumeni se brišu tek sa down -v ili ručno).

Iimidži se ponovo build-uju kad se pokrene sudo docker compose up, a izmene u imidžu se primenjuju na kontejner.

67
New cards

[POJAM] Zašto samo depends_on: - mysql nekad nije dovoljan?

Podrazumevano čeka samo da se kontejner pokrene (service_started), ne i da baza bude spremna za konekcije, pa može doći do greške ECONNREFUSED.

68
New cards

[KOD] Kako backend čeka da baza bude spremna?

healthcheck na bazi + u backendu: depends_on > mysql > condition: service_healthy (svaki nivo uvučen razmacima u novom redu)

69
New cards

[KOD] Dopuni: depends_on: > mysql: > condition: ____

service_healthy

70
New cards

[POJAM] Podopcije healthcheck-a?

test (komanda; počinje sa NONE, CMD ili CMD-SHELL), interval (vreme između provera), timeout (posle toga je provera neuspešna), retries (broj uzastopnih neuspeha pre unhealthy).

71
New cards

[POJAM] Kako frontend definiše zavisnost od backend-a?

depends_on: - backend (direktno ime servisa, obično bez složenog healthcheck-a).

72
New cards

[POJAM] Zašto se u servisu navode i bind-mount (./frontend:/app) i volumen /app/node_modules?

Bind-mount: promene koda se odmah vide u kontejneru bez rekreiranja slike. Izolovan /app/node_modules: sprečava da prazan folder sa hosta pregazi zavisnosti u kontejneru.

73
New cards

[POJAM] Čemu služi restart i šta radi restart: always?

restart definiše ponašanje pri grešci/zaustavljanju.

always = kontejner se automatski restartuje kad se zaustavi ili kad se sistem ponovo pokrene.

74
New cards

[POJAM] Razlika između entrypoint i command u compose.yaml?

entrypoint = komanda/skripta koja se obavezno izvršava pri pokretanju (npr. entrypoint: bash).

command = podrazumevana komanda ili argumenti (npr. command: ["npm", "start"]).

75
New cards

[POJAM] Čemu služi labels u Compose-u?

Dodaje metapodatke/oznake kontejneru radi organizacije, filtriranja i pretrage.

76
New cards

[POJAM] Čemu služi network_mode?

Postavlja režim mreže (npr. network_mode: host, kontejner koristi mrežu host mašine).

77
New cards

[T/N] Komanda EXPOSE u Dockerfile-u automatski otvara port na host mašini.

Netačno. EXPOSE je samo informativna (dokumentuje port), a port na hostu se otvara opcijom -p pri pokretanju.

78
New cards

[T/N] CMD instrukcija se izvršava u fazi build-ovanja slike.

Netačno. CMD se izvršava tek pri pokretanju kontejnera (docker run).

79
New cards

[T/N] Ako se tag ne navede pri build-u, koristi se latest.

Tačno.

80
New cards

[T/N] ARG promenljive su dostupne u pokrenutom kontejneru.

Netačno (samo u fazi build-a; ENV je dostupan i u kontejneru).

81
New cards

[T/N] docker volume ls prikazuje sve Docker volumene na sistemu.

Tačno.

82
New cards

[T/N] docker ps prikazuje i zaustavljene kontejnere.

Netačno (samo pokrenute; za sve je docker ps -a).

83
New cards

[T/N] docker rmi briše i kontejner koji koristi tu sliku.

Netačno (briše sliku, kontejner ostaje).

84
New cards

[T/N] Imenovani volumeni ostaju sačuvani i nakon brisanja kontejnera.

Tačno.

85
New cards

[T/N] U opciji -p 8080:80, 8080 je port u kontejneru, a 80 port na hostu.

Netačno. Obrnuto: HOST_PORT:CONTAINER_PORT,

8080 = host,

80 = kontejner.

86
New cards

[T/N] Opcija -p je obavezna da bi dva kontejnera u istoj privatnoj mreži komunicirala.

Netačno. Komuniciraju direktno preko unutrašnjih portova i imena servisa.

-p služi za izlaganje portova ka hostu.

87
New cards

[T/N] Bridge je podrazumevani Docker mrežni drajver.

Tačno.

88
New cards

[T/N] Drajver host zadržava mrežnu izolaciju između kontejnera i hosta.

Netačno (kontejner deli mrežu hosta, nema izolacije).

89
New cards

[T/N] Drajver overlay omogućava komunikaciju kontejnera preko više host mašina.

Tačno.

90
New cards

[T/N] YAML fajlovi u Compose-u koriste // za komentare.

Netačno (koristi se taraba #).

91
New cards

[T/N] depends_on po defaultu čeka da baza bude potpuno spremna da prima konekcije.

Netačno (čeka samo da se kontejner pokrene, treba healthcheck + condition: service_healthy).

92
New cards

[T/N] Preferirani naziv Compose fajla je compose.yaml.

Tačno.

93
New cards

[POJAM] Šta se dešava sa imidžima kad se posle docker compose down ponovo pokrene sudo docker compose up?

Po skripti: imidži se ponovo build-uju i sve izmene u imidžu se primenjuju na kontejner. Imenovani volumeni ostaju netaknuti.

94
New cards

[T/N] Po skripti, sudo docker compose up ponovo build-uje imidže pri pokretanju.

Tačno (formulacija iz skripte).

95
New cards

[KOD] Kako se u compose.yaml postavlja pokretanje kontejnera u pozadini?

detach: true

96
New cards
[KOD] Dopuni: ____: true (pokretanje kontejnera u pozadini u compose.yaml)

detach

97
New cards

[T/N] Anonimni volumeni se po skripti brišu kada se kontejner zaustavi (uz --rm ili ako se obriše).

Tačno (formulacija iz skripte).

98
New cards

[T/N] sudo docker compose down briše imidže i volumene.

Netačno. Briše kontejnere i mreže. Imidži i volumeni ostaju (volumeni se brišu tek sa down -v).