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

Docker е една от най-популярните платформи за контейнеризация, използвани в съвременния... DevOps и облачни работни потоци. Този урок за начинаещи за Docker обяснява какво е Docker, как работи архитектурата на Docker, как да инсталирате Docker на Ubuntuи основните команди, използвани за управление на изображения и контейнери.
Какво е Docker?
докер е платформа за разработка на софтуер за виртуализация, която позволява на множество операционни системи да работят на един и същ хост. Тя ви помага да отделите инфраструктурата от приложенията, за да можете да доставяте софтуер бързо. За разлика от хипервизорите, които се използват за създаване на виртуални машини (VM), Docker извършва виртуализация на системно ниво, използвайки единици, наречени Docker контейнери.
Docker контейнерите работят върху операционната система на хоста, както е показано на изображението по-долу. Това подобрява както ефективността, така и сигурността. Можете също така да стартирате повече контейнери, отколкото виртуални машини, на една и съща инфраструктура, защото контейнерите използват по-малко ресурси.

За разлика от виртуалните машини, които могат да комуникират директно с хост хардуера (например Ethernet адаптер, който създава още виртуални адаптери), Docker контейнерите работят в изолирана среда върху хост операционната система. Дори ако вашият хост работи Windows, можеш да бягаш Linux изображения в контейнери с помощта на Hyper-V, което автоматично създава малка виртуална машина за виртуализиране на базовия образ.
След като вече знаете какво е Docker, нека разгледаме основните причини, поради които екипите го избират.
Защо да използвате Docker?
Ето основните причини да използвате Docker:
- Docker е софтуер, използван за виртуализация, който позволява множество операционна система да работи на същия хост.
- Docker е клиент-сървър приложение, което означава, че клиентите комуникират със сървър.
- Docker изображенията действат като „изходен код“ за контейнери; използвате ги за изграждане.
- Docker поддържа два вида регистри: публични и частни.
- Контейнерите са организационните единици на Docker. Казано по-просто, изображението е шаблон, а контейнерът е копие на този шаблон, така че можете да стартирате множество контейнери от едно и също изображение.
Тези предимства идват от начина, по който е проектиран Docker. Следващият раздел разглежда архитектурата на Docker и нейните основни компоненти.
докер Archiтекстура
Сега, в този урок за Docker контейнери, нека разгледаме основните компоненти на Docker архитектурата.
Докер Двигател
Docker е клиент-сървър приложение, което означава, че имаме клиенти, които препращат заявки към сървър. Docker демонът, наречен dockerd, е Docker енджинът, който представлява сървъра. Демонът и клиентите могат да работят на един и същ или отдалечен хост и комуникират чрез клиентски двоичен файл от командния ред и пълен... RESTful API който взаимодейства с dockerd.
Изображения на Docker
Docker изображенията са „изходният код“ за нашите контейнери; ние ги използваме за изграждане на контейнери. Изображенията могат да имат предварително инсталиран софтуер, което ускорява внедряването. Те са преносими и можете да използвате съществуващи изображения или да създадете свои собствени.
Докер регистри
Docker съхранява изображенията, които създаваме, в регистри. Има публични и частни регистри. Docker има публичен регистър, наречен Докер център, където можете също да съхранявате изображения частно. Docker Hub има милиони изображения, които можете да започнете да използвате веднага.
Docker контейнери
Контейнерите са организационните единици на Docker и една от основните му концепции. Когато изграждаме образ и го изпълняваме, ние го изпълняваме вътре в контейнер. Аналогията с контейнера се използва поради преносимостта на софтуера, работещ вътре в него: можете да го местите, „изпращате“, променяте, управлявате, създавате или унищожавате, точно както товарните кораби боравят с истински контейнери.
С прости думи, изображението е шаблон, а контейнерът е копие на този шаблон. Можете да имате няколко контейнера (копия) на едно и също изображение.
Взаимодействието между тези различни компоненти показва как технологията на Docker контейнерите работи заедно. Команди като docker pull и docker run, които ще разгледаме по-късно, ви позволяват да управлявате този работен процес.
Имайки предвид архитектурата, нека инсталираме Docker, за да можете сами да изпробвате тези компоненти.
Как да инсталирате Docker на Linux/Ubuntu
По-долу е показан стъпка по стъпка процес на инсталиране на Docker в Linux/Ubuntu:
Стъпка 1) За да инсталирате Docker, ви трябват DEB пакетите на екипа на Docker. Първо, някои предварителни изисквания 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, като използвате командата по-долу.
$ 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 Server 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.
Ако искаме да стартираме изображението като контейнер, използваме следната команда.
$ sudo docker run -i -t alpine /bin/bash
Изпълнението на командата ни изпраща директно към терминала Alpine. Флагът -i държи STDIN отворен от контейнера, дори когато не сте свързани към него; този постоянен стандартен вход е едната половина от това, което ви е необходимо за интерактивна обвивка. Флагът -t е другата половина и инструктира Docker да присвои псевдо-tty на контейнера. Заедно те ни дават интерактивна обвивка в новия контейнер. Излизаме от контейнера с проста команда exit.
Сега, в този урок за основите на Docker, можем да опитаме да изпълним Ubuntu изображение.
$ sudo docker run -it ubuntu /bin/bash
Обърнете внимание, че Docker проверява за изображението локално и ако то не е там, то се изтегля автоматично от библиотеката с изображения. Отново имаме работеща интерактивна обвивка. Можем също така да именуваме контейнери, докато ги изпълняваме.
$ 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“ в края на същата команда, подобно на docker ps -a. Тази команда показва идентификатора на контейнера, кой образ използва, кога е създаден, състоянието му на изпълнение, откритите портове и произволно генерирано име за по-лесно управление.
Когато изпълняваме контейнери, често искаме да знаем колко ресурси използват. За тази цел можем да използваме следната команда.
$ docker stats
Можете също да видите кои изображения сте изтеглили локално, заедно с информация за тях.
$ sudo docker images
Командата в примера за Docker по-горе показва всяко Docker изображение с етикет, показващ версията на изображението, отличителен идентификатор на изображението, датата на създаване и размера на изображението.
За да разберем защо контейнерите са такова подобрение, е полезно да разгледаме как се е развила виртуализацията.
Какво е виртуализация?
Преди това внедряването на услуга беше бавно и мъчително. Разработчиците пишеха код, а след това оперативният екип го внедряваше на машини с „голо желязо“, където трябваше да следят за версии на библиотеки, пачове и езикови компилатори, за да работи кодът. Ако имаше грешки или грешки, процесът започваше отначало: разработчиците отстраняваха проблема, а оперативният екип преразполагаше.
Нещата се подобриха със създаването на хипервизори. Хипервизорите работят на множество виртуални машини, или виртуални машини, на един и същ хост, които може да са работещи или изключени. Виртуалните машини значително намалиха времето за чакане за внедряване на код и отстраняване на грешки, но истинската промяна в правилата на играта бяха Docker контейнерите.
Популярността на Docker се дължи и на инструменти за оркестрация, които управляват контейнери в голям мащаб, като например KubernetesПреди да продължим, ето кратък преглед на най-важните команди на Docker.
Важни Docker команди
По-долу са важните Docker команди:
| Команда | Descriptйон |
|---|---|
| докер информация | Информационно командване |
| докер издърпване | Изтегляне на изображение |
| docker run -i -t име_на_изображение /bin/bash | Стартирайте изображението като контейнер |
| docker стартирайте нашия_контейнер | Стартов контейнер |
| докер спиране на контейнер_име | Спрете контейнера |
| докер ps | Списък на всички работещи контейнери |
| докер статистика | Информация за контейнера |
| снимки на докер | Списък с изтеглени изображения |
| Докер почистване | Убийте всички работещи контейнери. |
Също така, прочетете тези Въпроси и отговори за интервю за работа на докер както за начинаещи, така и за опитни професионалисти.

