Контейнери в ElasticBeanstalk

pic

Архітектура проєкту на сьогодні.

Представляємо сьогоднішній проєкт!

Що таке Docker?

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

Що я не очікував...

Що я не очікував, так це як швидко можна розгорнути застосунок за допомогою Elastic Beanstalk.

Цей проєкт зайняв у мене…

Цей проєкт зайняв 4 години, включаючи весь час на документацію.

Розуміння контейнерів та Docker

Контейнери

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

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

Docker

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

Docker демон є «двигуном» для Docker, який отримує команди, що ми надсилаємо через клієнтів, наприклад, клієнтів у Docker Desktop або текстові команди, надіслані в термінал, і фактично створює/керує/контролює контейнери.

Запуск образу Nginx

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

Команда, яку я виконав для запуску нового контейнера, була docker run. Я також вказав параметри -d -p 80:80 nginx, що означає, що ми запускаємо контейнер у фоновому режимі (-d) і зв’язуємо порт 80 нашого хост-комп’ютера з портом 80 контейнера (-p80:80).

pic

Створення кастомного образу

Dockerfile — це набір інструкцій, які вказують Docker, як створювати ваш кастомний образ контейнера.

Мій Dockerfile вказує Docker три речі: по-перше, мій кастомний контейнер використовує останню версію Nginx як базу. Потім я модифікую цю базу, замінюючи стандартну сторінку вітання Nginx на власний файл index.html.

Команда, яку я використав для створення кастомного образу з моїм Dockerfile, була docker build. Точка в кінці команди означає, що Docker може знайти Dockerfile в поточній директорії, тобто в папці на моєму робочому столі.

pic

Запуск мого кастомного образу

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

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

pic

Elastic Beanstalk

Elastic Beanstalk — це сервіс AWS, який допомагає з розгортанням застосунків у хмарі. Він абстрагує велику частину роботи з налаштуванням хмарної інфраструктури при розгортанні застосунків.

Розгортання мого кастомного образу за допомогою Elastic Beanstalk зайняло 10 хвилин. Це включає час, витрачений на запуск застосунку в Elastic Beanstalk.

pic

кастомний образ з Elastic Beanstalk

Перекладено з: Containers on ElasticBeanstalk

Leave a Reply

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