Урок за Docker за начинаещи: Основи, Archiтекстура, Контейнери
Какво е Docker?
докер е платформа за разработка на софтуер за виртуализация с множество Operating системи, работещи на един и същ хост. Помага за разделянето на инфраструктурата и приложенията, за да се достави бързо софтуер. За разлика от Hypervisors, които се използват за създаване на VM (виртуални машини), виртуализацията в Docker се извършва на системно ниво, наричано още Docker контейнери.
Както можете да видите разликата в изображението по-долу, Docker контейнерите работят върху хоста Operaционна система. Това ви помага да подобрите ефективността и сигурността. Освен това можем да стартираме повече контейнери в една и съща инфраструктура, отколкото можем да стартираме виртуални машини, защото контейнерите използват по-малко ресурси.

За разлика от виртуалните машини, които могат да комуникират с хардуера на хоста (напр. Ethernet адаптер за създаване на повече виртуални адаптери), Docker контейнерите работят в изолирана среда върху операционната система на хоста. Дори ако вашият хост работи Windows OS, можете да имате Linux изображения, работещи в контейнери с помощта на Hyper-V, което автоматично създава малка виртуална машина за виртуализиране на базовото изображение на системата, в този случай, Linux.
Защо да използвате Docker?
- Docker е компютърен софтуер, използван за виртуализация, за да има множество Operaтинг системи работи на същия хост
- Docker е клиент-сървър тип приложение, което означава, че имаме клиенти, които препращат към сървъра
- Docker изображенията са „изходният код“ за нашите контейнери; ние ги използваме за изграждане
- Dockerfile има два типа регистри 1.) публични и 2) частни регистри
- Контейнерите са организационните единици на обема на Docker. С прости думи, изображението е шаблон, а контейнерът е копие на този шаблон. Можете да имате няколко контейнера (копия) на едно и също изображение.
докер Archiтекстура
Сега в този урок за контейнер на Docker нека поговорим за основните компоненти на Docker в Docker Archiтекстура:

Докер Двигател
Docker е клиент-сървър тип приложение, което означава, че имаме клиенти, които препращат към сървъра. И така, Docker демонът, наречен: dockerd е Docker двигателят, който представлява сървъра. Докер демонът и клиентите могат да се изпълняват на един и същ или отдалечен хост и комуникират чрез двоичен клиент на командния ред, както и пълен RESTful API за взаимодействие с демона: dockerd.
Изображения на Docker
Docker изображенията са „изходният код“ за нашите контейнери; използваме ги за изграждане на контейнери. Те могат да имат предварително инсталиран софтуер, който ускорява внедряването. Те са преносими и можем да използваме съществуващи изображения или да създадем свои собствени.
Докер регистри
Docker съхранява изображенията, които създаваме, в регистри. Има публични и частни регистри. Компанията Docker има публичен регистър, наречен Докер хъб, където можете също да съхранявате изображения лично. Docker hub има милиони изображения, които можете да започнете да използвате сега.
Docker контейнери
Контейнерите са организационните единици и една от основните концепции на Docker. Когато изградим изображение и започнем да го изпълняваме; работим в контейнер. Аналогията с контейнера се използва поради преносимостта на софтуера, който работим в нашия контейнер. Можем да го преместим, с други думи, да „изпратим“ софтуера, да го модифицираме, управляваме, създадем или да се отървем от него, да го унищожим, точно както товарните кораби могат да направят с истински контейнери.
С прости думи, изображението е шаблон, а контейнерът е копие на този шаблон. Можете да имате няколко контейнера (копия) на едно и също изображение.
По-долу имаме изображение, което идеално представя взаимодействието между различните компоненти и как работи контейнерната технология на Docker.
Това, което имаме няколко dockers команди docker pull, docker run.. ще говорим повече за това по-късно.
Как да инсталирате Docker на Linux/Ubuntu
По-долу е стъпка по стъпка процеса на инсталиране на Docker на Linux/Ubuntu:
Стъпка ) За да инсталираме Docker, трябва да използваме DEB пакетите на екипа на Docker.
За това има някаква предпоставка Ubuntu необходими са пакети.
Използвайте командата по-долу, за да инсталирате Ubuntu пакети
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*знакът “\” не е необходим, той се използва за новия ред, ако искате можете да напишете командата без да използвате “\” само на един ред.
Стъпка 2) Добавете официалния Docker GPG ключ с пръстовия отпечатък.
Използвайте командата Docker по-долу, за да въведете GPG ключа
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Стъпка 3) След това добавете хранилището на Docker APT.
Използвайте командата Docker по-долу, за да добавите хранилището
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Може да бъдете подканени да потвърдите, че искате да добавите хранилището и GPG ключът да се добави автоматично към вашия хост.
Командата lsb_release трябва да попълни Ubuntu версия за разпространение на вашия хост.
Стъпка 4) След като добавите GPG ключа,
Актуализирайте източниците на APT, като използвате командата Docker по-долу
$ sudo apt-get update
Вече можем да инсталираме самия пакет Docker.
Стъпка 5) След като източниците на APT се актуализират,
Започнете да инсталирате пакетите Docker на Ubuntu като използвате командата Docker по-долу
$ sudo apt-get install docker-ce
Горепосочената команда инсталира Docker и други допълнителни необходими пакети. Преди Docker 1.8.0 името на пакета беше lxc-docker, а между Docker 1.8 и 1.13 името на пакета беше docker-engine.
ЗАБЕЛЕЖКА: Докер за Windows Изисква Windows 10 Pro или Enterprise версия 14393, или Windows сървър 2016 RTM за стартиране
Как да използвате Docker с помощта на основни Docker команди
Ето как да използвате Docker с помощта на основни Docker команди:
Най-основната команда, която трябва да изпълним след инсталирането на Docker, е $ docker info, както казахме по-рано.
$ sudo docker info
Трябва да получите подобен или следния резултат
Както можем да видим в горния пример на Docker, имаме информация за докер контейнерите колко работят, поставени на пауза или спрени и колко изображения сме изтеглили. Така че нека получим нашето първо изображение в този урок за Docker команди.
$ sudo docker pull alpine
С тази команда казваме на docker да изтегли изображението alpine, да го изтегли от публичния регистър, най-новата версия, която е зададена по подразбиране.
*alpine е минимален Docker образ, базиран на Alpine Linux с пълен индекс на пакета и размер само 5 MB.
Ако искаме да стартираме изображението като контейнер, ще използваме следната команда в това ръководство за уроци на Docker.
$ sudo docker run -i -t alpine /bin/bash
Ако изпълним командата, ще бъдем изпратени директно до терминала на alpine. Флагът -i поддържа STDIN отворен от контейнера, дори когато не сте прикрепени към него. Този постоянен стандартен вход е половината от необходимото за интерактивна обвивка. Флагът -t е другата половина и който инструктира Docker да присвои псевдо-tty на контейнера. Това ни предлага интерактивна обвивка в новия контейнер. Излизаме от контейнера с проста команда за изход.
Сега в този урок за основите на Docker можем да опитаме да стартираме Ubuntu изображение.
$ sudo docker run -it ubuntu /bin/bash
Можете да забележите, че докерът проверява изображението локално и ако не е там, изображението се изтегля автоматично от библиотеката с изображения и отново имаме работеща интерактивна обвивка. Можем също да именуваме контейнерите, докато ги изпълняваме.
$ sudo docker run –-name our_container -it ubuntu /bin/bash
и пак излизаме.
Можем също да стартираме контейнер, който сме създали преди това, без интерактивна обвивка.
$ sudo docker start container_name
И спрете записването на контейнера docker stop container_name
$ sudo docker stop container_name
Ако искаме да видим всички работещи контейнери, просто стартираме
$ docker ps
И за всички контейнери добавяме „- a“ в края на същата тази команда, като този докер ps -a.
Тази команда показва идентификационния номер на контейнера, кое изображение се използва, когато е създадено, работещ статус, открити портове и произволно генерирано име за контейнера за по-лесно управление.
Когато изпълняваме контейнери, ние също бихме искали да знаем колко ресурси използват, за тази цел можем да използваме командата.
$ docker stats
Можете също да видите кои изображения сме изтеглили локално и информация за тях.
$ sudo docker images
Командата в горния пример на Docker показва изображението на Docker с етикет, който показва нашата версия на изображението, отличителен ID на изображението, кога е създадено и размера на изображението.
Какво е виртуализация?
По-рано процесът на внедряване на услуга беше бавен и болезнен. Първо, разработчиците пишеха код; след това оперативният екип щеше да го внедри на голи метални машини, където трябваше да се грижат за библиотечни версии, пачове и езикови компилатори, за да работи кодът. Ако имаше някакви бъгове или грешки, процесът започваше отначало, разработчиците щяха да го поправят и след това отново оперативният екип беше там, за да внедри.
Имаше подобрение със създаването на Hypervisors. Хипервайзорите имат множество Виртуални машини или виртуални машини на същия хост, които може да работят или да са изключени. Виртуалните машини значително намалиха времето за изчакване за внедряване на код и коригиране на грешки, но истинската промяна на играта бяха Docker контейнерите.
Важни Docker команди
По-долу са важните Docker команди:
| Команда | Descriptйон |
|---|---|
| докер информация | Информационно командване |
| докер издърпване | Изтегляне на изображение |
| docker run -i -t име_на_изображение /bin/bash | Стартирайте изображението като контейнер |
| docker стартирайте нашия_контейнер | Стартов контейнер |
| докер спиране на контейнер_име | Спрете контейнера |
| докер ps | Списък на всички работещи контейнери |
| докер статистика | Информация за контейнера |
| снимки на докер | Списък с изтеглени изображения |
| Докер почистване | Убийте всички работещи контейнери. |
Също така, прочетете Въпроси и отговори за интервю за работа на докер както за по-свежи, така и за опитни професионалисти.
Oбобщение
- Docker е платформа за разработка на софтуер за виртуализация с множество Operating системи, работещи на един и същи хост. Помага за разделянето на инфраструктурата и приложенията, за да се достави бързо софтуер.
- докер Archiтекстура: Docker Engine, Docker изображения, Docker регистри, Docker контейнери.
- DockerEngine: Docker е клиент-сървър тип приложение, което означава, че имаме клиенти, които препращат към сървъра. И така, Docker демонът, наречен: dockerd е Docker двигателят, който представлява сървъра.
- Докер изображения: Docker изображенията са „изходният код“ за нашите контейнери; използваме ги за изграждане на контейнери. Те могат да имат предварително инсталиран софтуер, който ускорява внедряването. Те са преносими и можем да използваме съществуващи изображения или да създадем свои собствени.
- Докер регистри: Docker съхранява изображенията, които създаваме, в регистри. Има публични и частни регистри. Компанията Docker има публичен регистър, наречен Docker hub, където можете също да съхранявате изображения частно. Docker hub има милиони изображения, които можете да започнете да използвате сега.
- Docker контейнери: Контейнерите са организационните единици и една от основните концепции на Docker. Когато изградим изображение и започнем да го изпълняваме; работим в контейнер. Аналогията с контейнера се използва поради преносимостта на софтуера, който работим в нашия контейнер.

