Kāda ir atšķirība starp attēlu un konteineru?
sobes.tech AI
Atbilde no AI
Attēls (image) — tas ir statisks, nemainīgs failu sistēmas un konfigurācijas parametru attēls, kas nepieciešams lietojumprogrammas palaišanai. Tas kalpo kā šablons.
Konteiners (container) — tas ir izpildāms attēla eksemplārs. Tas ir dinamisks un pārstāv darbojošu procesu ar savu tīkla interfeisu, failu sistēmu (balstītu uz attēla) un izolētu vidi.
| Īpašība | Attēls | Konteiners |
|---|---|---|
| Stāvoklis | Nemainīgs | Mainīgs |
| Esence | Šablons | Darba eksemplārs |
| Izmērs | Parasti mazāks nekā darbojošs konteiners | Var būt lielāks dēļ ieraksta slāņa |
| Dzīves cikls | Izveidots, saglabāts | Izveidots, palaists, apturēts, dzēsts |
Piemērs: Dockerfile attēls:
# Pamatattēls
FROM ubuntu:latest
# Lietojumprogrammas kopēšana
COPY app /app
# Atkarību instalēšana
RUN apt-get update && apt-get install -y python3
# Darba direktorijas noteikšana
WORKDIR /app
# Palaišanas komanda
CMD ["python3", "main.py"]
Šis Dockerfile apraksta, kā izveidot attēlu. Pēc attēla izveides, piemēram, ar komandu docker build -t myapp ., mēs iegūstam statisku attēlu myapp.
Tad, palaižot ar komandu docker run -d myapp, mēs izveidojam konteinera kopiju, pamatojoties uz šo attēlu. Šis konteiners ir aktīvs process, kurā tiek izpildīta mūsu lietojumprogramma. No viena attēla var izveidot vairākus konteinerus. Izmaiņas vienā konteinerā (piemēram, failu rakstīšana) neietekmē pašu attēlu vai citus no tā paša attēla palaistus konteinerus, pateicoties Copy-on-Write mehānismam.