Що таке Docker?

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

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

Чому варто використовувати Docker?

Ключові переваги:

  • Портативність: Додатки працюють однаково, незалежно від того, де вони розгорнуті.
  • Масштабованість: Легко масштабувати додатки вгору або вниз в залежності від попиту.
  • Ізоляція: Контейнери інкапсулюють додаток та його залежності, гарантуючи, що вони працюють незалежно один від одного.

Які проблеми вирішує Docker? Реальний приклад

pic

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

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

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

Використовуючи Docker, ми не лише вирішили нашу проблему в продукції, але й значно заощадили час і зусилля. Це забезпечило стандартизоване, надійне рішення, яке працювало бездоганно на різних середовищах — справжній прорив для сучасної розробки додатків.

Що таке CI/CD?

pic

CI/CD в Azure DevOps означає безперервну інтеграцію (CI) та безперервне розгортання (CD), що є практиками автоматизації процесів побудови, тестування та розгортання додатків. У CI розробники часто об'єднують свій код у спільному репозиторії, де автоматизовані побудови та тести забезпечують правильність нових змін у коді. Під час цього процесу генеруються і зберігаються артефакти (файли, такі як результати побудови або пакети), які є версіями додатка для розгортання. У CD ці артефакти автоматично розгортаються в продукцію або в інші середовища, що забезпечує швидку та надійну доставку оновлень. Azure DevOps надає інструменти, такі як Pipelines, для управління цими процесами, що забезпечує стабільну та якісну доставку програмного забезпечення.

CI/CD Pipeline з Docker?

pic

CI/CD pipeline в Azure DevOps з Docker — це як автоматизована фабрика для вашого додатка. У фазі CI код вашого додатка упаковується в Docker image (контейнер, що містить все необхідне для роботи додатка), тестується і зберігається в реєстрі контейнерів, такому як Azure Container Registry (ACR) або Docker Hub, що виступає як склад. У фазі CD цей образ забирається з реєстру і розгортається на платформах, таких як Azure Kubernetes Service (AKS) або App Service, щоб зробити додаток доступним для користувачів.
Цей процес забезпечує безперешкодну, стабільну та автоматизовану доставку додатків.

pic

Docker Image:

  • Уявіть собі образ як план чи рецепт для створення контейнерів. Він містить код додатка, системні бібліотеки та залежності. Образи незмінні, тобто вони не змінюються після створення.
  • Приклад: образ може містити Python додаток або додаток, написаний будь-якою мовою програмування з усіма необхідними бібліотеками, попередньо встановленими.

Docker Container:

  • Контейнер — це працюючий екземпляр образу. Це як випікання торту за рецептом — образ це рецепт, а торт — контейнер.
  • Контейнери легкі, портативні та ізольовані від інших контейнерів.

Приклад:

  • У вас є Docker образ веб-сервера (наприклад, Nginx).
  • Коли ви запускаєте контейнер, він запускає веб-сервер на основі образу.

Що таке веб-сервер? Приклади веб-серверів

Веб-сервер — це програмне забезпечення, яке доставляє веб-сторінки користувачам через інтернет. Коли ви вводите URL у вашому браузері, веб-сервер обробляє цей запит і повертає вміст сайту.

Популярні веб-сервери:

  • Apache HTTP Server: Один з найстаріших і найпопулярніших веб-серверів.
  • Nginx: Відомий своєю швидкістю та здатністю обробляти багато одночасних запитів.
  • Microsoft IIS: Веб-сервер для Windows серверів.
  • LiteSpeed: Веб-сервер, орієнтований на високу продуктивність.

Початок роботи з Docker

Припустімо, ви хочете запустити веб-сервер, наприклад Nginx, використовуючи Docker. Ось як це зробити:

Встановіть Docker
Перейдіть на офіційний сайт Docker і дотримуйтесь інструкцій для вашої операційної системи.
Переконайтесь, що Docker встановлений на вашій машині.
Після встановлення перевірте, чи працює Docker:

docker — version

Перевірка інформації Docker

Перегляньте загальні відомості про Docker

docker info

Запуск вашого першого Docker контейнера

Завантажте образ: Використовуйте команду:

Завантажте образ Nginx з Docker Hub (публічний репозиторій попередньо створених образів):
ПОСИЛАННЯ: nginx — Офіційний образ | Docker Hub

docker pull nginx

Перегляд усіх Docker образів

docker images

Створення контейнера: Запустіть контейнер з образу

docker run -d --name my-nginx nginx

Як запустити контейнер

Якщо ви створили контейнер, ви можете легко управляти його життєвим циклом.

Використовуйте команду docker start:

docker start my-nginx

Перевірка працюючих контейнерів:

Перегляньте всі активні контейнери за допомогою

docker ps  
docker ps -a // Список усіх контейнерів (працюючих та зупинених)

Зупинка контейнера:

Зупиніть працюючий контейнер за допомогою

docker stop my-nginx

Перезапуск контейнера:

Перезапустіть контейнер за допомогою

docker restart my-nginx

Docker в дії: Трансформація розробки додатків

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

Висновок: Docker — це справжній прорив

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

Перекладено з: What is Docker?

Leave a Reply

Your email address will not be published. Required fields are marked *