Урок за Docker за начинаещи: Основи, Archiтекстура, Контейнери

Какво е Docker?

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

Както можете да видите разликата в изображението по-долу, Docker контейнерите работят върху хоста Operaционна система. Това ви помага да подобрите ефективността и сигурността. Освен това можем да стартираме повече контейнери в една и съща инфраструктура, отколкото можем да стартираме виртуални машини, защото контейнерите използват по-малко ресурси.

Виртуализация в Docker срещу Hypervisor
Виртуализация в Docker срещу Hypervisor

За разлика от виртуалните машини, които могат да комуникират с хардуера на хоста (напр. Ethernet адаптер за създаване на повече виртуални адаптери), Docker контейнерите работят в изолирана среда върху операционната система на хоста. Дори ако вашият хост работи Windows OS, можете да имате Linux изображения, работещи в контейнери с помощта на Hyper-V, което автоматично създава малка виртуална машина за виртуализиране на базовото изображение на системата, в този случай, Linux.

Защо да използвате Docker?

  • Docker е компютърен софтуер, използван за виртуализация, за да има множество Operaтинг системи работи на същия хост
  • Docker е клиент-сървър тип приложение, което означава, че имаме клиенти, които препращат към сървъра
  • Docker изображенията са „изходният код“ за нашите контейнери; ние ги използваме за изграждане
  • Dockerfile има два типа регистри 1.) публични и 2) частни регистри
  • Контейнерите са организационните единици на обема на Docker. С прости думи, изображението е шаблон, а контейнерът е копие на този шаблон. Можете да имате няколко контейнера (копия) на едно и също изображение.

докер Archiтекстура

Сега в този урок за контейнер на Docker нека поговорим за основните компоненти на Docker в Docker Archiтекстура:

докер Archiтекстура
докер 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

Както можем да видим в горния пример на 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. Когато изградим изображение и започнем да го изпълняваме; работим в контейнер. Аналогията с контейнера се използва поради преносимостта на софтуера, който работим в нашия контейнер.

Обобщете тази публикация с: