Урок за Docker - Въведение в Docker и контейнеризиране



В този урок за Docker ще разберете необходимостта от Docker и ще получите въведение в Docker. Това е първият блог от поредицата уроци на Docker

Надявам се, че не сте пропуснали поредицата от по-ранни блогове с уроци за DevOps. Преминете през тук.Неограничимата тенденция на контейнера Docker се разраства и организациите търсят професионалисти, които притежават .Сега този път ще ви преведем през Въведение в Docker.

Урок за Docker

Този блог с уроци на Docker ще ви даде концептуалното и практическо излагане на Docker - нова технология за контейнеризиране на епохата.





В този блог ще се съсредоточим върху следните теми:

  • Какво е виртуализация?
  • Какво е контейнеризиране
  • Предимства на контейнеризацията пред виртуализацията
  • Въведение в Docker
  • Предимства на Docker
  • Виртуализация срещу контейнеризиране
  • Инсталиране на Docker
  • Dockerfile, Docker Image & Docker Container
  • Какво е Docker Hub?
  • Архитектура на Docker
  • Docker Compose

Docker набира популярност и използването му се разпространява като горски пожар. Причината за нарастващата популярност на Docker е степента, до която той може да се използва в ИТ организация. Много малко инструменти там имат функционалността, за да се окажат полезни както за разработчиците, така и за системните администратори. Docker е един такъв инструмент, който наистина отговаря на обещанията си Изграждане , Кораб и Бягай .



С прости думи, Docker е софтуерна платформа за контейнеризиране, което означава, че можете да изградите приложението си, да го опаковате заедно с техните зависимости в контейнер и след това тези контейнери могат лесно да бъдат изпратени за работа на други машини.

Например: Нека разгледаме приложение, базирано на Linux, което е написано както в Ruby, така и в Python. Това приложение изисква специфична версия на linux, Ruby и Python. За да се избегнат конфликти на версии в края на потребителя, може да се създаде контейнер за linux докер с необходимите версии на Ruby и Python, инсталирани заедно с приложението. Сега крайните потребители могат да използват приложението лесно, като стартират този контейнер, без да се притесняват за зависимостите или конфликтите на версиите.

Тези контейнери използват Containerization, което може да се разглежда като еволюирала версия на виртуализацията. Същата задача може да бъде постигната и с помощта на виртуални машини, но това не е много ефективно.



Обикновено получавам въпрос в този момент, т.е. каква е разликата между виртуализация и контейнеризация? Тези два термина са много сходни помежду си. И така, нека първо ви кажа какво е виртуализация?

Какво е виртуализация?

Виртуализацията е техниката за импортиране на операционна система за гости върху операционна система Host. Тази техника беше откровение в началото, защото позволи на разработчиците да стартират множество операционни системи в различни виртуални машини, всички работещи на един и същ хост. Това премахна необходимостта от допълнителен хардуерен ресурс. Предимствата на виртуалните машини или виртуализацията са:

  • Множество операционни системи могат да работят на една и съща машина
  • Поддръжката и възстановяването бяха лесни в случай на отказ
  • Общите разходи за собственост също бяха по-малки поради намалената нужда от инфраструктура

Архитектура на виртуална машина - Урок за Docker за въведение в Docker - Edureka

На диаграмата вдясно можете да видите, че има хост операционна система, на която работят 3 гостуващи операционни системи, което не е нищо друго освен виртуални машини.

Тъй като знаете, че нищо не е перфектно, виртуализацията също има някои недостатъци. Изпълнението на множество виртуални машини в една и съща операционна система на хоста води до влошаване на производителността. Това се дължи на операционната система за гости, работеща върху хост операционната система, която ще има собствено ядро ​​и набор от библиотеки и зависимости. Това отнема голяма част от системните ресурси, т.е. твърд диск, процесор и особено RAM.

Друг проблем с виртуалните машини, които използват виртуализация, е, че отнема почти минута за зареждане.Това е много критично в случай на приложения в реално време.

Следват недостатъците на виртуализацията:

  • Работата с множество виртуални машини води до нестабилна производителност
  • Хипервизорите не са толкова ефективни, колкото хост операционната система
  • Процесът на зареждане е дълъг и отнема време

Тези недостатъци доведоха до появата на нова техника, наречена контейнеризация. Сега нека ви разкажа за контейнеризацията.

Какво е контейнеризиране?

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

Предимства на контейнеризацията пред виртуализацията:

  • Контейнерите на едно и също ядро ​​на ОС са по-леки и по-малки
  • По-добро използване на ресурсите в сравнение с виртуалните машини
  • Процесът на зареждане е кратък и отнема няколко секунди

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

Всички тези контейнери се обработват от слоя за контейнеризиране, който не е роден за хост операционната система. Следователно е необходим софтуер, който може да ви позволи да създавате и стартирате контейнери на вашата операционна система хост.

сол срещу готвач срещу кукла

Вижте този видеоурок с Docker за задълбочено разбиране на Docker.

Урок за Docker за начинаещи | Какво е Docker? | Инструменти на DevOps | Едурека

Сега, позволете ми да ви преведа през въведението в Docker.

Урок за Docker - Въведение в Docker

Docker е платформа за контейнеризиране, която пакетира вашето приложение и всички негови зависимости заедно под формата на контейнери, за да гарантира, че вашето приложение работи безпроблемно във всяка среда.

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

Като разработчик мога да създам контейнер, в който са инсталирани различни приложения, и да го дам на моя екип за QA, който ще трябва само да стартира контейнера, за да репликира средата на разработчика.

Предимства на Docker

Сега екипът на QA не трябва да инсталира целия зависим софтуер и приложения, за да тества кода и това им помага да спестят много време и енергия. Това също така гарантира, че работната среда е последователна за всички лица, участващи в процеса, като се започне от разработването до внедряването. Броят на системите може лесно да се мащабира и кодът да се разположи върху тях без усилие.

Виртуализация срещу контейнеризиране

Виртуализацията и контейнеризацията ви позволяват да стартирате множество операционни системи в хост машина.

Виртуализацията се занимава със създаване на много операционни системи в една хост машина. Контейнеризацията, от друга страна, ще създаде множество контейнери за всеки тип приложение, както се изисква.

Фигура: Какво е анализ на големи данни - виртуализация срещу контейнеризация

Както виждаме от изображението, основната разлика е, че има множество операционни системи за гости във виртуализацията, които отсъстват при контейнеризацията. Най-добрата част от контейнеризацията е, че е много лека в сравнение с тежката виртуализация.

Сега нека инсталираме Docker.

Инсталирайте Docker:

Ще инсталирам Docker в моята машина Ubuntu 17.10. Следват стъпките за инсталиране на Docker:

  1. Инсталирайте необходимите пакети
  2. Настройка на хранилището на Docker
  3. Инсталирайте Docker на Ubuntu

1. Инсталирайте необходимите пакети:

Има определени пакети, които се изискват във вашата система за инсталиране на Docker. Изпълнете командата по-долу, за да инсталирате тези пакети.

sudo apt-get инсталирате curl apt-transport-https ca-сертификати софтуер-свойства-общи

2. Настройка на хранилището на Docker:

Сега импортирайте официалния GPG ключ на Dockers, за да проверите подписа на пакетите, преди да ги инсталирате с apt-get. Изпълнете командата по-долу на терминала:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

Сега добавете хранилището Docker във вашата система Ubuntu, което съдържа пакети Docker, включително неговите зависимости, за това изпълнете командата по-долу:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stable'

3. Инсталирайте Docker в Ubuntu:

Сега трябва да надстроите apt index и да инсталирате изданието на общността на Docker, за което изпълнете командите по-долу:

sudo apt-get update sudo apt-get install docker-ce

Честито! Успешно инсталирахте Docker. Също така вижте няколко често използвани Команди на Docker .

Сега нека видим няколко важни концепции на Docker.

Dockerfile, Docker Image и Docker Container:

  1. Docker Image се създава чрез последователността от команди, записани във файл, наречен Dockerfile.
  2. Когато този Dockerfile се изпълни с помощта на docker команда, той се получава в Docker Image с име.
  3. Когато това изображение се изпълнява чрез команда “docker run”, то само по себе си ще стартира всяко приложение или услуга, които трябва да стартира при изпълнението му.

Docker Hub:

Docker Hub е като GitHub за Docker Images. Това е основно облачен регистър, където можете да намерите Docker Изображения, качени от различни общности, също така можете да разработите свое собствено изображение и да качите в Docker Hub, но първо, трябва да създадете акаунт в DockerHub.

Архитектура на Docker:

Състои се от Docker Engine, който е клиент-сървърно приложение с три основни компонента:

  1. Сървър, който е вид дълготрайна програма, наречена демон процес (командата на докера).
  2. REST API, който определя интерфейси, които програмите могат да използват, за да говорят с демона и да го инструктират какво да прави.
  3. Клиент на интерфейс за команден ред (CLI) (командата на докер).
  4. CLI използва Docker REST API за контрол или взаимодействие с демона на Docker чрез скриптове или директни команди на CLI. Много други приложения на Docker използват базовия API и CLI.

Вижте този блог, за да прочетете повече за .

И накрая в този блог на урока на Docker ще говоря за Docker Compose.

Съставяне на докер:

Docker Compose се използва основно за стартиране на множество Docker контейнери като един сървър. Позволете ми да ви дам пример:

Да предположим, че ако имам приложение, което изисква WordPress, Maria DB и PHP MyAdmin. Мога да създам един файл, който да стартира двата контейнера като услуга, без да е необходимо да стартирам всеки поотделно. Наистина е полезно, особено ако имате микросервизна архитектура.

Вижте моя блог на Докер контейнер за да разберем как да го изпълним на практика.

Също така можете да прочетете този блог за това как можете да съдържате средно приложение за стека с помощта на Docker Compose.

С това стигаме до края на първия блог на Docker Tutorial за Въведение в Docker & Containerization.

Преминете през следващия ни блог на Docker:

След като разбрахте какво е DevOps, разгледайте нашия от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за обучение за сертифициране Edureka DevOps помага на обучаемите да придобият опит в различни процеси и инструменти на DevOps като Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack и GIT за автоматизиране на множество стъпки в SDLC.

Имате въпрос към нас? Моля, споменете го в раздела за коментари и ние ще се свържем с вас.

как да сканирам за характер в java -