Краткий экскурс в Docker

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

В этой статье вы узнаете, что такое докер, зачем он нужен, каковы наиболее важные его компоненты, а также плюсы и минусы использования этой платформы.

Что такое Docker

Docker (Докер) — это платформа контейнеризации с открытым исходным кодом, используемая для оптимизации управления приложениями и разработки программного обеспечения. В основе докера лежит упаковка веб-приложений в изолированные виртуальные среды – контейнеры, – что значительно упрощает разработку и обслуживание программ.

Что такое контейнеры

Контейнеры docker — это виртуальные блоки, служащие для запуска приложений. Каждый контейнер представляет собой пакет ПО, который содержит код, системные инструменты, библиотеки, зависимости и файлы конфигурации, необходимые для запуска определённого приложения.

Контейнеры основаны на образах docker. Вы создаете контейнер, запуская образ докер из публичного репозитория Docker Hub.

На одном и том же оборудовании может размещаться несколько контейнеров. В отличие от виртуальных машин, контейнеры виртуализируются на уровне приложений, поэтому они делят ядро ​​ОС с хостом и виртуализируют операционную систему поверх него. Это означает, что вы используете меньше ресурсов.

Помимо того, что контейнеры не зависят от системы, их можно быстро и легко запускать, настраивать, добавлять, останавливать и удалять. Разработчики могут работать над одним и тем же приложением в разных средах, зная, что это никак не повлияет на производительность. Кроме того, они могут “перекидывать” данные между контейнерами с помощью томов данных.

Топ-3 основных понятий Docker

Давайте теперь чётко обозначим, какие термины лежат в основе экосистемы докер и что они означают.

  • Образ – шаблонный элемент, который используется при создании контейнеров.
  • Контейнер – виртуальные среды, которые включают себя совокупность процессов и образа.
  • Реестр – репозиторий, в котором хранятся образы.

Зачем нужен Docker

Докер используется:

  • для запуска одновременно нескольких рабочих процессов с меньшим потреблением ресурсов, чем обычно;
  • для оптимизации и поддержки всего процесса разработки;
  • в качестве экономичной альтернативы виртуальным машинам;
  • как система контроля за приложениями и их разработкой.

Преимущества Docker

Универсальность

Docker гарантирует, что ваше приложение будет работать одинаково на разных устройствах и операционных системах. Разработчики могут вместе работать над одним и тем же приложением без возникновений конфликтов между ОС и ПО, ведь докер может размещаться не только на Linux, но и на Windows и MacOS.

Автоматизация

Платформа позволяет автоматизировать монотонные и повторяющиеся задачи.

Быстрое развёртывание

Поскольку в Docker происходит виртуализация на уровне операционной системы, при запуске экземпляров контейнеров время загрузки отсутствует. Таким образом, вы можете выполнить развёртывание за считанные секунды на виртуальном сервере.

Абсолютный контроль версий образов

Контейнеры основаны на образах Docker, которые могут иметь несколько слоев. Каждый такой слой получает собственные изменения и обновления в базе. Эта функция не только ускоряет процесс сборки, но и обеспечивает контроль версий контейнера, что позволяет разработчикам при необходимости вернуться к предыдущей версии.

Экономия ресурсов

Контейнеры намного легче и меньше, чем виртуальные машины. Они занимают меньше памяти и не требуют больших физических серверов.

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

Экосистема Docker состоит из следующих важных компонентов:

  • Движок Docker — это основная часть всей системы Docker.
  • Демон Docker — это cлужба, которая управляет всеми элементами докер: сетями, хранилищами, образами и контейнерами.
  • Клиент Docker — это основной способ взаимодействия многих пользователей с демоном Docker.
  • Образы Docker – это неизменяемые образы, доступные только для чтения, из которых разворачиваются контейнеры.
  • Контейнеры Docker — запущенное и развёрнутое приложение.
  • Реестр Docker – репозиторий, в котором хранятся образы. Самый распространённым публичным репозиторием является Docker Hub.
  • Dockerfile — это текстовый файл, который содержит набор инструкций по созданию образа Docker, включая операционную систему, языки, расположение файлов, сетевые порты и любые другие компоненты, необходимые для запуска.
  • Хост Docker – это ОС, на которой работает докер.
  • Docker Compose – инструмент для запуска и управления несколькими контейнерами.

Как работает Docker

Docker упаковывает программное обеспечение в стандартизированные блоки, называемые контейнерами, которые содержат всё необходимое для работы ПО, включая библиотеки, системные инструменты, код и среду выполнения. Используя Docker, вы можете быстро развертывать приложения в любой среде и быть уверенными, что ваш код будет работать.

Как установить Docker

Windows

  1. Скачайте установочный файл Docker Desktop Installer.exe.
  2. Откройте его от имени администратора, щёлкнув правой кнопкой мыши, чтобы начать процесс установки.
  3. После окончания установки перезагрузите компьютер.

  1. Запустите программу Docker Desktop.
  2. Примите лицензионные соглашения.
  3. Вас могут попросить установить дополнительный компонент WSL2 с официального сайта Microsoft. Сделайте это.
  4. Убедитесь, что в настройках выбран параметр «Использовать WSL 2» на странице «Основное».

Вот и всё. Docker теперь установлен на вашем ПК и готов к работе.

MacOS

  1. Выберите загрузочный файл Docker, в зависимости от чипа, установленного на вашем компьютере (Intel или Apple Silicon), и скачайте его.
  2. Дважды щёлкните по файлу Docker.dmg, чтобы открыть программу установки, затем перетащите значок Docker в папку «Программы».
  3. Дважды щёлкните на Docker.app в папке «Программы», чтобы запустить Docker.
  4. Примите лицензионное соглашение и введите пароль.
  5. Можете пропустить инструкции, воспользовавшись кнопкой «Skip Tutorial».

Теперь вы можете пользоваться платформой докер на своём Macbook или iMac.

Ubuntu 20.04

  1. Введите команду, чтобы обновить пакеты:

sudo apt update

  1. Установите необходимые пакеты, которые позволяют apt использовать пакеты через протокол HTTPS:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

  1. Добавьте GPG-ключ репозитория Docker:

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

  1. Добавьте репозиторий Docker:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

  1. Обновите пакеты командой:

sudo apt update

  1. Откройте репозиторий Docker, а не Ubuntu, чтобы его установить:

apt-cache policy docker-ce

  1. Установите Docker, введя команду:

sudo apt install docker-ce

  1. Проверьте программу, чтобы убедиться, что она запущена. В терминале должна появиться информация о том, что Docker активен:

sudo systemctl status docker

Список полезных команд

–version – используется для определения текущей установленной версии докера.

pull — загружает готовый образ из репозитория.

run — создаёт контейнер из образа.

ps — открывает список запущенных контейнеров.

docker ps -a — отображает все запущенные и закрытые контейнеры.

docker exec — даёт доступ к работающему контейнеру.

images — открывает список всех докер-образов на диске.

rn — удаляет образ Docker.

build — cоздаёт образ.

Как создать Docker-образ с помощью Dockerfile

Есть несколько способов создать докер-образ. С одним из них вам поможет Dockerfile.

В качестве примера мы выбрали образ Alpine Linux. Он совсем маленький, всего 5 МБ, поэтому идеально нам подходит.

  1. Создайте новый файл с именем «Dockerfile».

touch Dockerfile

  1. Откройте любой текстовый редактор (например, Vim или Nano), чтобы добавить следующий текст в этот файл:

FROM alpine:latest

RUN apk update

RUN apk add vim

Что произошло? Вы создали новый образ Docker, выгрузив последнюю версию Docker Alpine из Docker Hub.

Так как для файлов Alpine характерно расширение apk, команда apk update запрашивает обновление пакета, а затем apk add vim инициирует установку Vim.

  1. Введите:

docker build -t new_docker_image_name PATH_to_Dockerfile

Это команда для создания пользовательского образа из Dockerfile. С помощью тега -t мы указали имя своего будущего образа Docker.

  1. Так как ваш Dockerfile находится в текущем каталоге, вы можете создать новый образ Docker Alpine Linux с установленным Vim:

docker build -t alpine-with-vim

  1. Проверьте доступные образы на диске:

На этот этапе уже можно заметить, что вес базового образа Docker Alpine, обычно не превышающий 5 МБ, теперь составляет 33 МБ с установленным Vim.

  1. Проверьте созданные образы Docker на наличие Vim в них, запустив контейнер:

docker container run -ti alpine-with-vim /bin/sh

  1. Оказавшись внутри контейнера, убедитесь, что Vim установлен, уточнив его версию:

/ # vim --version

VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 12 2019 19:30:49)

Compiled by Alpine Linux

Готово! Теперь вы знаете, как создавать Docker-образ с помощью Dockerfile.

Как удалить Docker образ

Удалить Docker образ крайне просто: введите docker rmi <имя-образа>.

Если у этого образа есть контейнеры (даже если они приостановлены), удалить его не получится. Об этой ошибке вы узнаете из сообщения:

unable to remove repository reference <имя-образа> (must force) - container is using its

Однако с этой проблемой прекрасно справляется тег -f. Добавьте его.

docker rmi -f <имя-образа>

Заключение

В этой статье вы узнали о важной роли Docker в работе веб-разработчиков, а также о том, как установить эту платформу на свой компьютер и создать простой образ докер.

Мы надеемся, что эта информация была для вас полезна.

Всё ещё остались вопросы?