Авторы Хирен Рупчандани, Абхинав Джангир и Ашиш Лепча
- Развертывание контейнеров – это популярная технология, которая дает разработчикам возможность создавать среды приложений со скоростью и масштабом.
- Контейнеризация — это виртуализация на основе ОС, которая создает несколько виртуальных единиц в пользовательском пространстве, называемых контейнерами.
- Контейнеры используют одно и то же ядро хоста, но изолированы друг от друга с помощью частных пространств имен и механизмов управления ресурсами на уровне ОС.
Преимущества развертывания контейнеров
- Запускайте множество отдельных приложений на одном и том же количестве серверов.
- Доставляйте готовые к запуску приложения в контейнерах, которые содержат все коды, библиотеки и зависимости, необходимые любому приложению.
- Снижение затрат на операции с инфраструктурой. Обычно на одной виртуальной машине (виртуальной машине) работает много контейнеров.
- Масштабируемость решения на уровне микросервисов/функций – нет необходимости масштабировать экземпляры/виртуальные машины.
- Более высокий уровень безопасности. Полная изоляция приложений позволяет размещать основные процессы каждого приложения в отдельных контейнерах.
- Мгновенная репликация микрослужб с помощью реплик и наборов развертывания.
- Гибкая маршрутизация между службами, изначально поддерживаемыми платформами контейнеризации.
- Полная переносимость между облаками и локальными расположениями.
- Независимая от ОС — им не нужна ОС для работы; только ядро контейнера развертывается на хост-ОС.
- Быстрое развертывание с гидратацией новых контейнеров и завершением старых контейнеров с теми же средами.
- Легкий. Без ОС контейнеры являются легкими и менее требовательными к использованию ресурсов сервера, чем изображения.
Почему развертывание контейнеров?
- Развертывание контейнеров может заменить многие задачи, которые ранее выполнялись ИТ-операциями.
- Когда такой инструмент, как Docker, развертывает несколько контейнеров, он помещает приложения в виртуальные контейнеры, работающие в одной и той же операционной системе. Это дает преимущество, недоступное виртуальным машинам.
- Использование виртуальной машины требует запуска вся гостевой операционной системы для развертывания одного приложения.
- Это дорого и медленно при развертывании большого количества приложений.
- Если вы развернете контейнер Docker, в каждом контейнере будет все необходимое для запуска приложения, и его можно будет легко развернуть вверх или вниз. Strong> для тестирования.
- Именно так развертывание контейнера экономит такие ресурсы, как хранилище, память и вычислительную мощность, а также ускоряет Конвейер CI/CD.
Виртуальные машины
- Виртуальные машины (ВМ) – это абстракция физического оборудования, превращающая один сервер во множество серверов. Гипервизор позволяет запускать несколько виртуальных машин на одном компьютере.
- Каждая виртуальная машина включает в себя полную копию операционной системы, приложение, необходимые двоичные файлы и библиотеки, занимающие десятки ГБ. ВМ также могут медленно загружаться.
Докер
- Docker — это платформа с открытым исходным кодом для создания, развертывания и управления контейнерными приложениями.
- Он позволяет разработчикам упаковывать приложения в контейнеры — стандартизированные исполняемые компоненты, объединяющие исходный код приложения с библиотеками операционной системы (ОС) и зависимостями, необходимыми для запуска. этот код в любой среде.
Компоненты Докера
DockerFile
- Каждый контейнер Docker начинается с простого текстового файла, содержащего инструкции по созданию образа контейнера Docker.
- DockerFile автоматизирует процесс создания образа Docker. По сути, это список инструкций интерфейса командной строки (CLI), которые Docker Engine запустит для сборки образа.
Докер-образы
- Образы Docker содержат исполняемый исходный код приложения, а также все инструменты, библиотеки и зависимости, которые необходимы коду приложения для запуска в качестве контейнера.
- Когда вы запускаете образ Docker, он становится одним экземпляром (или несколькими экземплярами) контейнера.
- Несколько образов Docker можно создать из одного базового образа, и они будут иметь общие черты своего стека.
Докер-контейнеры
- Контейнеры Docker — это работающие экземпляры образов Docker. В то время как образы Docker доступны только для чтения, контейнеры — это живое, эфемерное исполняемое содержимое.
- Пользователи могут взаимодействовать с ними, а администраторы могут настраивать их параметры и условия с помощью команд Docker.
Преимущества докера
- Более быстрый выход на рынок
- Продуктивность разработчиков
- Скорость развертывания
- Сокращение ИТ-инфраструктуры
- Операционная эффективность ИТ
- Более быстрое решение проблемы
- Портативность
Установка докера
- Для Windows Docker Desktop можно установить с помощью гипервизораили WSL 2.
- Для последнего в вашей системе должен быть установлен WSL 2, и вы можете обратиться к одной из наших статей за инструкциями по установке.
- Вы можете ознакомиться с этими рекомендациями по установке Docker в Windows и с этими рекомендациями для MacOS.
Создание необходимых файлов
- Чтобы наш проект был готов к контейнеризации, нам нужно создать 2 дополнительных файла с именами Dockerfile и docker-compose.yml.
Файл Docker
- Docker может автоматически создавать образы, читая инструкции из файла Docker.
- Dockerfile — это текстовый документ, содержащий все команды, которые пользователь может вызвать в командной строке для сборки образа.
- С помощью сборки docker пользователи могут создать автоматическую сборку, которая последовательно выполняет несколько инструкций командной строки.
Докер Сочинять
- Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker.
- В Compose вы используете файл YAML для настройки служб вашего приложения.
- Затем с помощью одной команды вы создаете и запускаете все службы из вашей конфигурации.
- Использование Compose представляет собой трехэтапный процесс:
- Определитесреду вашего приложения с помощью Dockerfile, чтобы его можно было воспроизвести где угодно.
– Определите службы, из которых состоит ваше приложение, в файле docker-compose.yml, чтобы их можно было запускать вместе в изолированной среде.
– Запустите docker-compose, и команда Docker compose запустит и запустит все ваше приложение. В качестве альтернативы вы можете запустить docker-compose up с помощью бинарного файла docker-compose. - Dockerfile и файл Docker Compose будут выглядеть так в нашем проекте:
Контейнеризация с помощью Docker
Сборка Docker
- Команда сборки docker создает образы Docker из файла Dockerfile и «контекста». Контекст сборки — это набор файлов, расположенных по указанному PATH или URL.
- Процесс сборки может ссылаться на любой из файлов в контексте. Например, ваша сборка может использовать инструкцию COPY для ссылки на файл в контексте.
- Команда для создания/сборки образа Docker, введите следующее:
docker build -t face_mask .
Докер Бег
- Docker запускает процессы в изолированных контейнерах. Контейнер — это процесс, который запускается на хосте. Хост может быть локальным или удаленным.
- Когда оператор запускает docker run, запущенный контейнерный процесс изолируется, поскольку у него есть собственная файловая система, собственная сеть и собственное изолированное дерево процессов, отдельное от гостья.
- Команда для запуска созданного образа докера:
docker run -p 8000:8000 face_mask
Тестирование приложения на локальном хосте
- Теперь мы готовы протестировать наше приложение на локальном хосте:
- Давайте посмотрим, работает ли прогноз:
Что дальше?
- Контейнерные приложения стали популярным выбором среди команд DevOps и других организаций, отказавшихся от традиционных подходов к разработке программного обеспечения.
- Развертывание контейнеров также хорошо сочетается с процессами и инструментами непрерывной интеграции (CI) и непрерывной доставки (CD).
- В следующей статье этой серии мы увидим, как масштабировать наше приложение, содержащееся в докере, с помощью Kubernetes, чтобы наше приложение было готово к непрерывной интеграции и непрерывная доставка.
Подпишитесь на нас, чтобы не пропустить новые статьи, посвященные науке о данных, машинному обучению и искусственному интеллекту.
Кроме того, дайте нам аплодисменты👏, если вы находите эту статью полезной, так как ваша поддержка стимулирует вдохновение и помогает создавать еще больше интересных вещей, подобных этой. .