logo

Що таке Docker?

Docker — це набір продуктів «Платформа як послуга» (PaaS), які використовують віртуалізацію на рівні операційної системи для доставки програмного забезпечення в пакетах, які називаються контейнерами. Контейнери ізольовані один від одного та містять власне програмне забезпечення, бібліотеки та файли конфігурації; вони можуть спілкуватися один з одним через чітко визначені канали. Усі контейнери керуються єдиним ядром операційної системи, тому вони використовують менше ресурсів, ніж віртуальна машина.

Зміст

Що таке Docker?

Докер є відкритим кодом контейнеризація платформа, за допомогою якої ви можете упакувати свою програму та всі її залежності в стандартизований блок, який називається контейнером. Контейнери мають невелику вагу, що робить їх портативними, і вони ізольовані від основної інфраструктури та один від одного контейнера. Ви можете запустити зображення докера як докер-контейнер на будь-якій машині, де встановлено докер, незалежно від операційна система.



Докер отримав свою популярність завдяки своєму впливу на розробку та розгортання програмного забезпечення. Нижче наведено деякі з основних причин популярності докерів:

  1. Портативність: Docker допомагає розробникам упаковувати свої додатки з усіма залежностями в єдині легкі контейнери. Він забезпечує стабільну продуктивність у різних обчислювальних середовищах.
  2. Відтворюваність: Завдяки інкапсуляції додатків із їхніми залежностями всередині контейнера це забезпечує узгодженість налаштувань програмного забезпечення в середовищах розробки, тестування та виробництва.
  3. Ефективність: Docker завдяки своїй контейнерній архітектурі оптимізує використання ресурсів. Це дозволяє розробникам запускати кілька ізольованих програм на одній хост-системі.
  4. Масштабованість: Функції масштабованості Docker полегшили розробникам роботу з додатками під час збільшення робочого навантаження.

Що таке Dockerfile?

The Dockerfile використовує DSL (доменоспецифічну мову) і містить інструкції щодо створення образу Docker. Dockerfile визначить процеси для швидкого створення зображення. Створюючи програму, ви повинні створити Dockerfile у порядку, починаючи з Демон докера запускає всі інструкції зверху вниз.

(Демон Docker, який часто називають просто Docker, — це фонова служба, яка керує контейнерами Docker у системі.)

  • Це текстовий документ, який містить необхідні команди, які під час виконання допомагають зібрати образ Docker.
  • Образ Docker створюється за допомогою Dockerfile.
Dockerfile

Щоб дізнатися більше про Dockerfile, зверніться до Docker – Концепція Dockerfile .

Що таке архітектура Docker і як працює Docker?

Docker використовує архітектуру клієнт-сервер. Клієнт Docker спілкується з демоном докерів, який допомагає створювати, запускати та розповсюджувати контейнери докерів. Клієнт Docker працює з демоном у тій же системі, або ми можемо віддалено підключити клієнт Docker до демона Docker. За допомогою REST API через сокет UNIX або мережу докер-клієнт і демон взаємодіють один з одним. Щоб дізнатися більше про роботу докера, зверніться до Архітектура Docker .

Архітектура Docker

Що таке Docker Image?

Це файл, що складається з кількох шарів, який використовується для виконання коду в контейнері Docker. Це набір інструкцій, які використовуються для створення контейнерів докерів. Docker Image — це виконуваний пакет програмного забезпечення, який містить усе необхідне для запуску програми. Це зображення інформує про те, як контейнер повинен створювати екземпляр, визначаючи, які програмні компоненти працюватимуть і як. Docker Container — це віртуальне середовище, яке об’єднує код програми з усіма залежностями, необхідними для запуску програми. Програма працює швидко та надійно з одного обчислювального середовища в інше.

прихованих програм на цьому пристрої

Що таке Docker Container?

Контейнер Docker — це екземпляр зображення під час виконання. Дозволяє розробникам пакувати програми з усіма необхідними частинами, наприклад бібліотеками та іншими залежностями. Контейнери Docker — це екземпляри образів Docker під час виконання. Контейнери містять увесь набір, необхідний для програми, тому програму можна запускати ізольовано. Наприклад. Припустимо, що є образ ОС Ubuntu із сервером NGINX, коли цей образ запускається за допомогою команди docker run, тоді буде створено контейнер і сервер NGINX працюватиме в ОС Ubuntu.

Що таке Docker Hub?

Docker Hub — це сервіс-репозиторій, і це хмарна служба, куди люди надсилають свої зображення контейнерів Docker, а також завантажують зображення контейнерів Docker із Docker Hub у будь-який час і будь-де через Інтернет. Загалом це полегшує пошук і повторне використання зображень. Він надає такі функції, як ви можете надсилати свої зображення як приватний або публічний реєстр, де ви можете зберігати та ділитися зображеннями Docker.

конструктор рядків

В основному команда DevOps використовує Docker Hub. Це інструмент із відкритим вихідним кодом і вільно доступний для всіх операційних систем. Це як сховище, де ми зберігаємо зображення та витягуємо зображення, коли це потрібно. Якщо людина хоче надсилати/витягувати зображення з Docker Hub, вона повинна мати базові знання Docker. Давайте обговоримо вимоги до інструменту Docker.

Що таке Docker Compose?

Docker Compose виконає багатоконтейнерну програму на основі YAML. Файл YAML містить усі налаштування, необхідні для розгортання контейнерів Docker Compose , яка інтегрована з Зграя докерів , а також надає вказівки щодо створення та розгортання контейнерів. За допомогою Docker Compose кожен контейнер створено для роботи на одному хості.

Як завантажити Docker Desktop?

Docker Desktop надає графічний інтерфейс для роботи з контейнерами докерів, зображеннями докерів і мережами докерів. Робочий стіл Docker забезпечує окреме середовище, яке містить Docker Engine, Docker CLI, Docker Compose, Kubernetes, та інші інструменти, необхідні для створення, доставки та запуску програм у формі контейнерів, що робить їх більш зручними для користувача. Щоб дізнатися більше про те, як встановити Docker Desktop, зверніться до Приклад зображення робочого столу Docker.

Команди Docker

Завдяки представленню основних команд докера докер став потужним програмним забезпеченням для оптимізації процесу керування контейнером. Це допомагає забезпечити безперебійну розробку та розгортання робочих процесів. Нижче наведено деякі команди докерів, які зазвичай використовуються:

  • Запуск Docker: Він використовувався для запуску контейнерів із зображень із зазначенням параметрів виконання та команд.
  • Docker Pull: Він отримує зображення контейнерів із реєстру контейнерів, як Docker Hub, на локальну машину.
  • Докер ps : допомагає відображати запущені контейнери разом із важливою інформацією, як-от ідентифікатор контейнера, використане зображення та статус.
  • Docker Stop : допомагає зупинити запущені контейнери, витончено завершуючи процеси в них.
  • Початок Docker: Це допомагає перезапустити зупинені контейнери, відновивши їх роботу з попереднього стану.
  • Логін Docker: Це допомагає увійти в реєстр докерів, що дозволяє отримати доступ до приватних сховищ.

Щоб дізнатися більше про команди докерів, зверніться до Docker – інструкційні команди .

Двигун Docker

Програмне забезпечення, яке розміщує контейнери, називається Docker Engine. Docker Engine — це клієнт-серверна програма. Механізм докерів складається з 3 основних компонентів:

  1. сервер: Він відповідає за створення та керування зображеннями Docker, контейнерами, мережами та томами на Docker. Його називають процесом демона.
  2. REST API : Він визначає, як програми можуть взаємодіяти з сервером, і вказує, що робити.
  3. Клієнт: Клієнт — це інтерфейс командного рядка (CLI) Docker, який дозволяє нам взаємодіяти з Docker за допомогою команд Docker.

Навіщо використовувати Docker?

Docker можна використовувати для упаковки програми та її залежностей, що робить її легкою та легкою для швидшої та надійнішої доставки коду. Docker дуже спрощує запуск програми у виробничому середовищі. Контейнер докерів може бути незалежним від платформи, якщо на машині встановлено механізм докерів.

  • Ефективність використання ресурсів : Docker допомагає максимізувати використання ресурсів, запускаючи кілька контейнерів на одному хості. Це допомагає зменшити витрати на інфраструктуру та підвищити ефективність.
  • Контроль версій: Це спрощує керування версіями для додатків і їхніх залежностей, забезпечуючи узгодженість і спрощуючи співпрацю між командами.
  • Гнучкість мікросервісів: Це дозволяє прийняти архітектуру мікросервісів, сприяючи масштабованості, гнучкості та гнучкій розробці додатків із ізоляцією помилок.

Що таке Docker для AWS?

Docker — найпотужніший інструмент для запуску програми у вигляді контейнерів. Контейнер Docker має малу вагу і може працювати на будь-якій операційній системі.

AWS надає Amazon Elastic Container Service ( Amazon ECS ) це повністю керований контейнерний сервіс, за допомогою якого ви можете розгортати, масштабувати та керувати контейнерами докерів. Amazon ECS є найнадійнішою платформою відповідно до продуктивності, а також її можна інтегрувати з іншими службами AWS, такими як балансування навантаження, виявлення служб і моніторинг справності контейнерів. Щоб дізнатися більше про Amazon Elastic Container Service (Amazon ECS) .

Різниця між контейнерами Docker і віртуальними машинами

Нижче наведено відмінності між контейнерами докерів і віртуальними машинами:

Докер-контейнери

Віртуальні машини

Контейнери Docker містять двійкові файли, бібліотеки та файли конфігурації разом із самою програмою.

Віртуальні машини (ВМ) працюють на гіпервізорах, що дозволяє кільком віртуальним машинам працювати на одній машині разом із власною операційною системою.

Вони не містять гостьової ОС для кожного контейнера та покладаються на базове ядро ​​ОС, що робить контейнери легкими.

Кожна віртуальна машина має власну копію операційної системи разом із програмою та необхідними двійковими файлами, що робить її значно більшою та вимагає більше ресурсів.

перейменування каталогу linux

Контейнери спільно використовують ресурси з іншими контейнерами в тій самій хост-ОС і забезпечують ізоляцію процесу на рівні ОС.

Вони забезпечують ізоляцію процесу на апаратному рівні та повільно завантажуються.

Встановіть Docker на Ubuntu

Наступні кроки допоможуть вам встановити докер на ubuntu:

Крок 1. Видаліть стару версію Docker

  • Виконайте таку команду, щоб видалити програмне забезпечення докера зі старими версіями:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>

Крок 2: Встановлення Docker Engine

  • Для встановлення движка докерів використовується наступна команда:
$ sudo apt-get update   $ sudo apt-get install   ca-certificates   curl   gnupg   lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo   'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu   $(lsb_release -cs) stable' | sudo tee /etc/apt/sources.list.d/docker.list>/dev/null $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin $ sudo groupadd docker $ sudo usermod -aG docker $USER>

Крок 3. Перевірте встановлення Docker

  • Перевірте, чи докер успішно встановлено у вашій системі, спробувавши запустити контейнер за допомогою такої команди:
$ sudo docker run hello-world>

Щоб отримати докладніші відомості про встановлення докерів на ubuntu, зверніться до цього – ст

Приклад прикладу: контейнеризація програми за допомогою Docker

Наступні кроки вказують у контейнеризації програми за допомогою Docker:

Крок 1: Створіть Dokcerfile і програму Python

  • Створіть папку з 2 файлами (Dockerfile і main.py).

Крок 2: Розробіть код Python

  • Відредагуйте main.py за допомогою наведеного нижче коду, інакше ви можете спробувати розробити власний код на Python.
Python
#!/usr/bin/env python3 print('Docker and GFG rock!')>

Крок 3. Розробіть Dockerfile

  • Відредагуйте Dockerfile, дотримуючись наведених нижче інструкцій щодо розробки Dockerfile:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>

Крок 4: Створіть образ Docker

  • Після того, як ви створили та відредагували файли main.py і Dockerfile, створіть своє зображення, яке містить вашу програму, виконавши таку команду:
$ sudo docker build -t python-test .>
  • Опція «-t» дозволяє визначити назву вашого зображення. «python-test» — це назва, яку ми обрали для зображення.

Крок 5. Запустіть Docker Container

  • Після створення образу ваш код готовий до запуску.
$ sudo docker run python-test>

Щоб дізнатися більше про цю контейнеризацію вашої програми, перегляньте це – ст

Приклад прикладу надсилання зображення в Docker Hub

Для надсилання зображення на Dockerhub виконайте наведені нижче дії.

Крок 1: Створіть обліковий запис на Docker Hub або скористайтеся наявним, якщо він у вас уже є.

Крок 2: Натисніть кнопку «Створити репозиторій», введіть назву файлу та натисніть «Створити».

крок 3: Тепер ми позначимо наше зображення тегом і надішлемо його до репозиторію Docker Hub, який ми щойно створили.

як відкрити файл json
  • Тепер виконайте наведену нижче команду, щоб отримати список зображень докерів:
$ docker images>
  • Наведене вище дасть нам цей результат
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
  • Ідентифікатор зображення використовується для позначення зображення. Синтаксис для позначення зображення:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>

крок 4: Надішліть зображення до репозиторію Docker Hub

$ docker push afrozchakure/python-test>

Щоб дізнатися більше про публікацію зображень на dockerhub, перегляньте це – ст

Отримайте та запустіть образ із Docker Hub

1. Щоб видалити всі версії певного зображення з нашої локальної системи, ми використовуємо для нього ідентифікатор зображення.

$ docker rmi -f af939ee31fdc>

2. Тепер запустіть образ, він отримає образ із центру докерів, якщо його немає на вашій локальній машині.

$ docker run afrozchakure/python-test>

Переваги Docker

Нижче наведено деякі з переваг Docker:

mylivecricket
  • Портативність: Засоби Docker зі створенням легких портативних контейнерів, які можуть бути недоступні на будь-якій машині, незалежно від базових операційних систем.
  • Ізоляція: Docker через контейнери забезпечує високий рівень ізоляції, дозволяючи програмам працювати незалежно одна від одної, вирішуючи проблеми, на які один контейнер не впливає на інший.
  • Відтворюваність: Завдяки цьому розробники Docker можуть легко запакувати свої програми та їхні залежності в образи для багаторазового використання. Це дозволяє створювати послідовні та відтворювані збірки в середовищах розробки, тестування та виробництва.
  • Інтеграція DevOps : це сприяє співпраці та автоматизації протягом життєвого циклу розробки програмного забезпечення для виконання зростаючих робочих навантажень.

Альтернативи Docker

Нижче наведено альтернативи Docker:

  • Підкорений : Пропонує сумісну з Docker систему контейнерів з упором на безпеку та сумісність, ідеальну для середовищ, де Docker недоступний або недоступний.
  • rkt: Полегшене середовище виконання контейнера, розроблене CoreOS, призначене для простоти, безпеки та компонування, пропонуючи альтернативу середовищу виконання контейнера Docker.
  • LXC (контейнери Linux): Забезпечує віртуалізацію на рівні операційної системи для запуску кількох ізольованих систем Linux (контейнерів) на одному хості, пропонуючи легку альтернативу Docker для певних випадків використання.
  • контейнер: Промислове середовище виконання основного контейнера, розроблене Docker, Inc., яке пропонує мінімальну та стабільну платформу для створення контейнерних додатків, часто використовується як альтернатива нижчого рівня Docker для більш просунутих систем оркестровки контейнерів, таких як Kubernetes.

Docker Security

Нижче наведено деякі ідеї щодо безпеки докерів:

  • Ізоляція : Контейнери Docker забезпечують надійну ізоляцію, що забезпечує роботу додатків і їх обробку.
  • Незмінна інфраструктура : сприяє використанню незмінної інфраструктури, де контейнери будуються з незмінних зображень, які контролюються версіями.
  • Обмеження ресурсів: Це дозволяє визначати обмеження ресурсів для контейнерів, наприклад обмеження ЦП і пам’яті.
  • Сканування безпеки: Він надає вбудовані засоби сканування безпеки, які дозволяють сканувати образи контейнерів на відомі вразливості та зловмисне програмне забезпечення перед розгортанням.

Висновок

Отже, ви дізналися про основи Docker, різницю між віртуальними машинами та контейнерами Docker, а також деякі загальні терміни Docker. Крім того, ми пройшли інсталяцію Docker у наших системах. Ми створили програму за допомогою Docker і відправили наше зображення в Docker Hub. Нарешті, ми дізналися, як ми можемо видалити певне зображення з нашої локальної системи, а потім отримати зображення з Docker Hub, якщо воно не існує локально.

Docker – поширені запитання

Що таке Docker Hub коротко?

Docker Hub — це загальнодоступний реєстр, де користувачі/розробники можуть зберігати та ділитися системними образами, створеними ними, а також полегшувати доступ до них і повторно використовувати зображення для інших розробників програмного забезпечення.

Що потрібно для використання Docker Hub?

Щоб використовувати Docker Hub, користувач повинен мати обліковий запис на платформі Docker Hub. Якщо у вас немає облікового запису на Docker Hub, ви можете створити його, зареєструвавшись. Якщо у вас є обліковий запис на Docker, ви можете виконувати такі операції, як надсилання та перетягування зображень до та з Docker Hub.

Що таке журнали Docker?

Демон Docker і контейнери Docker створюватимуть журнали Docker у формі текстових повідомлень, які допоможуть вам у подальшому вирішувати проблеми, відстежувати продуктивність ваших програм і збирати інформацію про стан вашого середовища Docker.

Що таке Docker Build?

Docker build — це команда, яка використовується для створення образу докера за допомогою Dockerfile.

Що таке Docker Ubuntu?

Docker Ubuntu — це термін, який використовується для використання служби Docker з операційними системами на основі Ubuntu. Запуск Docker найкраще підходить для популярного дистрибутива Linux Ubuntu.