Cunoștințe cu docul

E timpul să cunoaștem Docker.

Pe scurt, ceea ce este un Docker. Mai precis, un pic de filozofie Docker. Acesta este un produs software deschis care vă permite să desfășurați aplicații într-un container izolat. Da, vă puteți gândi la asta ca pe un chroot megasuper. Filozofia docker-ului implică faptul că puteți implementa o aplicație într-un singur container. De exemplu, aveți posibilitatea să implementați un server web cu un tip de site web sau o aplicație web și în viitor acest container poate fi transferat pe un alt server, în producție, în nor și nu va exista dependențe. Doar nevoie de un doc și totul va funcționa.







Care este diferența dintre Docker și virtualizare? Există mai multe tipuri de virtualizare: nivel de sistem, paravirtualizare, virtualizare, emulație. Dar Docker nu se aplică nici unei virtualizări. Este mai degrabă o containerizare. Sistemul de operare pune motorul docker.io și totul. Apoi, descarcati imaginea dorita, de exemplu, ubuntu si desfasurati-o cu aplicatia potrivita. Imaginile pentru docker sunt deja ușoare, de exemplu, ultimul meu ubuntu cântărește 134,7 MB.

Imaginea foarte clară, decât Docker diferă de mașina virtuală:

Cunoștințe cu docul

Asta înseamnă că nu este nevoie să creați o mașină virtuală, puneți-o pe ea, toate, o grămadă de software, doar pentru ca mașina să funcționeze. Apoi implementați aplicația sau site-ul nostru.

De exemplu, vă puteți aminti conceptele de cloud computing SAAS, PAAS, IAAS.

SAAS sunt aplicații care rulează în cloud, un exemplu fiind Dropbox.

PAAS este un set de instrumente și un serviciu pentru dezvoltarea aplicațiilor cloud.

IAAS este o infrastructură de server pentru clienți, clienții înșiși folosesc deja serverul și spațiul de stocare pentru aplicațiile lor cloud.

Deci, cu exemplul acestor concepte Docker, există SAAS. Asta înseamnă că am ridicat aplicația în container și cum trăiește acolo și ce dependențe nu ne interesează.

Mai aproape de punct, așa cum se spune. Să o simțim în practică. Am un server ubuntu 14.02, am pus un Docker pe el și am implementat un container cu serverul web Apache.

Am pus docker-ul foarte simplu

apt-get update
apt-get instala docker.io







începeți debarcarea serviciului

Asta e tot. Docker-ul este instalat. Acum avem nevoie de o imagine a sistemului pe care vom instala containerul nostru. Lista de imagini poate fi vizualizată cu ajutorul comenzii

Formați imaginea Ubuntu

docker trageți ubuntu

Imaginea a fost descărcată și acum este posibilă implementarea containerului pe baza acestei imagini. Puteți rula comanda containerului

docker run -name test -d -p-8888: 80 ubuntu / bin / bash

test - numele recipientului

ubuntu - imaginea pe care am scuturat-o

-p 8888: 80 înseamnă că portul 80 al containerului este transportat la portul 8888 al mașinii gazdă

-d înseamnă modul daemon

Rezultatul este un container cu funcționare bash. Intrăm și intrăm în cochilie.

doc test

1b3f9a138209 este id-ul containerului nostru.

Acum puteți instala, desigur, apache2 și totul, dar nu aici a fost. Apache se va ridica, dar la pornire nu va fi și niciun script init nu va ajuta. Este necesară asamblarea containerului cu Dockerfile, în care vom specifica instrucțiunile cum și ce să punem.

Creați un fișier Docker în directorul de acasă și scrieți acolo

DE Ubuntu: ultima
ÎNTREȚINEREA TESTELOR
RUN apt-get update
RUN apt-get instala apache2 -y
ENV APACHE_RUN_USER www-date
ENV APACHE_RUN_GROUP www-date
ENV APACHE_LOG_DIR / var / log / apache2
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_RUN_DIR / var / execuție / apache2
ENV APACHE_LOCK_DIR / var / lock / apache2
ENV APACHE_SERVERADMIN admin @ localhost
ENV APACHE_SERVERNAME localhost
ENV APACHE_SERVERALIAS docker.localhost
ENV APACHE_DOCUMENTROOT / var / www
ADD ./conf/apache2.conf /etc/apache2/apache2.conf

ADD ./conf/start.sh /start.sh
RUN chmod 0755 /start.sh
CMD ["bash", "start.sh"]

În fișier, după cum puteți vedea, specificăm imaginea din care vom face containerul. Specificați comenzile și variabilele de instalare a serverului Apache. De asemenea, luați config-ul de pe Apache de la mașina gazdă și adăugați scriptul start.sh

/ conf crea un script start.sh scrie acolo

# Începeți apache
/ usr / sbin / apache2 -D FOREGROUND

Îl facem executabil

chmod + x start.sh

Acum trebuie să ne compilam imaginea cu acest fișier. Este imaginea, nu containerul.

docker build -t apache2.

Numele imaginii va fi apache2. Dockerfile va lua de la directorul în care executați comanda. Fișierul ar trebui să fie numit Dockerfile (primul caracter este majusculă).

Dacă totul a mers bine, atunci în lista de imagini va fi o imagine a apache2.

Acum colectăm recipientul

docker rulați -i -t -name test -d -p 8888: 80 apache2

Uite ce sa întâmplat. echipă

Ne va arăta toate containerele și dacă acestea sunt pornite sau nu.

CONTAINER ID IMAGE COMMAND CREAT STATUS PORTS NAMES
9be9493aa841 apache2: cele mai recente bash start.sh 3 ore în urmă Up 1 secunde 0.0.0.0:8888->80/tcp test

În regulă, vedem că containerul rulează. Să vedem dacă funcționează Apache.

Și vedem codul html al paginii apache standard. Totul funcționează.

porniți docerul [container-id] - porniți containerul

stația de andocare [container-id] - opriți recipientul

docker rm porniți [container-id] - eliminați recipientul

docker rmi [image-id] - eliminați imaginea sistemului

docker trageți [image-id] - obțineți imaginea (centos, debian, ubuntu etc.)

docker top [container-id] - a se vedea lista proceselor containerului

docker ps - o listă a tuturor containerelor

Până acum, totul va fi continuat ...







Articole similare

Trimiteți-le prietenilor: