Nevýhody virtualizácie
je virtualizácia na úrovni operačného systému.
Vrstva hostiteľského operačného systému ktorá vytvára "klietku" v ktorej beží jeden alebo viac procesov.
+---------+
| HOST OS |
+---------+
^
|
+-----------------------+
| Application Container |
+-----------------------+
^
|
+------------------+
| GUEST OS and APP |
+------------------+
Virtualizačná vrstva medzi aplikáciou a operačným systémom
Aplikácia využíva jadro hostiteľského OS
Umožňuje rýchlo spúšťať aplikáciu na ľubovoľnom uzle bez toho aby ste museli riešiť inštaláciu a závislosti.
+----------+
| registry | Docker Hub
+----------+
|| (image)
+----------+
| démon | Host machine
+----------+
|| (protocol)
+------------+
| cli client | Host machine
+------------+
Príkaz 'docker' v príkazovom riadku.
Bežiaca aplikácia.
+--------+
| Image |
+--------+
| Run
v
+-----------+
| Container |
+-----------+
Vidí virtuálne zariadenia
Kontajner vidí "svoju" sieť.
+-----------------+
| Operačný systém |
+-----------------+
| inštalácia
+-----------+
| Aplikácia |---------------+
+-----------+ |
| mapovanie |
+----------------+ +----------------+
| Stav aplikácie | | Dočasné súbory |
+----------------+ +----------------+
docker run nginx
na pozadí
docker run -it --rm nginx
s konzolou
docker run -p 80:80 -v /var/www:/var/www nginx
Mapovanie medzi reálnym a virtuálnym adresárom.
Ako upraviť aplikáciu aby bežala na cloude?
Každá aplikácia má svoje závislosti na nižších vrstvách:
Zmena HW, LIB alebo OS si vyžaduje zmenu aplikácie.
Dockerfile sú inštrukcie ako zostaviť obraz.
FROM dockerfile/ubuntu
RUN \
add-apt-repository -y ppa:nginx/stable && \
apt-get update && \
apt-get install -y nginx && \
rm -rf /var/lib/apt/lists/* && \
echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
chown -R www-data:www-data /var/lib/nginx
WORKDIR /etc/nginx
CMD ["nginx"] # Define default command.
Centrálny repozitár Dockerhub