Учебное пособие по Docker для начинающих: основы, Archiтектура, Контейнеры
⚡ Умное резюме
Docker — это платформа контейнеризации, которая упаковывает приложения и их зависимости в портативные, легковесные контейнеры. В этом обзоре объясняется архитектура Docker и его установка. Ubuntuосновные команды и чем контейнеры отличаются от традиционных виртуальных машин, что способствует более быстрой доставке программного обеспечения.

Docker — одна из самых популярных платформ контейнеризации, используемых в современном мире. DevOps и облачных рабочих процессов. В этом руководстве по Docker для начинающих объясняется, что такое Docker, как работает архитектура Docker и как установить Docker. Ubuntuа также основные команды, используемые для управления образами и контейнерами.
Что такое Докер?
Docker Docker — это платформа для разработки программного обеспечения, использующая виртуализацию, которая позволяет запускать несколько операционных систем на одном хосте. Она помогает отделить инфраструктуру от приложений, что позволяет быстро разрабатывать программное обеспечение. В отличие от гипервизоров, которые используются для создания виртуальных машин (ВМ), Docker выполняет виртуализацию на системном уровне с помощью модулей, называемых контейнерами Docker.
Контейнеры Docker работают поверх операционной системы хоста, как показано на изображении ниже. Это повышает как эффективность, так и безопасность. Кроме того, на одной и той же инфраструктуре можно запускать больше контейнеров, чем виртуальных машин, поскольку контейнеры используют меньше ресурсов.

В отличие от виртуальных машин, которые могут напрямую взаимодействовать с аппаратным обеспечением хоста (например, с сетевым адаптером, создающим дополнительные виртуальные адаптеры), контейнеры Docker работают в изолированной среде поверх операционной системы хоста. Даже если на вашем хосте запущена Windows, Вы можете запустить Linux изображения внутри контейнеров с помощью Hyper-V, которая автоматически создает небольшую виртуальную машину для виртуализации базового образа.
Теперь, когда вы знаете, что такое Docker, давайте рассмотрим основные причины, по которым команды выбирают его.
Зачем использовать Докер?
Вот основные причины использовать Docker:
- Docker — это программное обеспечение, используемое для виртуализации, позволяющее создавать множество виртуальных машин. операционные системы для запуска на том же хосте.
- Docker — это клиент-серверное приложение, то есть клиенты взаимодействуют с сервером.
- Образы Docker выступают в качестве «исходного кода» для контейнеров; вы используете их для сборки.
- Docker поддерживает два типа реестров: публичные и частные.
- Контейнеры — это организационные единицы Docker. Проще говоря, образ — это шаблон, а контейнер — это копия этого шаблона, поэтому вы можете запускать несколько контейнеров из одного и того же образа.
Эти преимущества обусловлены особенностями архитектуры Docker. В следующем разделе подробно рассматривается архитектура Docker и его основные компоненты.
Docker Archiтекстура
В этом руководстве по контейнерам Docker давайте рассмотрим основные компоненты архитектуры Docker.
Докер Двигатель
Docker — это клиент-серверное приложение, то есть у нас есть клиенты, которые передают запросы на сервер. Демон Docker, называемый dockerd, — это движок Docker, представляющий сервер. Демон и клиенты могут работать на одном или удаленном хосте и обмениваться данными через исполняемый файл клиента командной строки и полный интерфейс. API RESTful который взаимодействует с dockerd.
Докер-образы
Образы Docker — это «исходный код» для наших контейнеров; мы используем их для создания контейнеров. В образы может быть предварительно установлено программное обеспечение, что ускоряет развертывание. Они портативны, и вы можете использовать существующие образы или создавать свои собственные.
Докер-реестры
Docker хранит созданные нами образы в реестрах. Существуют публичные и частные реестры. У Docker есть публичный реестр, который называется... Докер Хаб, где вы также можете хранить образы в приватном режиме. Docker Hub содержит миллионы образов, которые вы можете начать использовать прямо сейчас.
Контейнеры Docker
Контейнеры — это организационные единицы Docker и одна из его основных концепций. Когда мы создаём образ и запускаем его, мы запускаем его внутри контейнера. Аналогия с контейнером используется из-за портативности программного обеспечения, работающего внутри него: вы можете перемещать, «отправлять», изменять, управлять, создавать или уничтожать его, подобно тому как грузовые суда обрабатывают настоящие контейнеры.
Проще говоря, изображение — это шаблон, а контейнер — копия этого шаблона. У вас может быть несколько контейнеров (копий) одного и того же образа.
Взаимодействие между этими различными компонентами демонстрирует, как работает технология контейнеров Docker. Такие команды, как docker pull и docker run, которые мы рассмотрим позже, позволяют управлять этим рабочим процессом.
Учитывая архитектуру, давайте установим Docker, чтобы вы могли самостоятельно протестировать эти компоненты.
Как установить Docker в Linux/Ubuntu
Ниже описан пошаговый процесс установки Docker в Linux/Ubuntu:
Шаг 1) Для установки Docker вам потребуются DEB-пакеты от команды Docker. Сначала необходимо выполнить некоторые предварительные условия. Ubuntu Для установки необходимы следующие пакеты. Используйте команду ниже.
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*Знак «\» не обязателен, он используется для новой строки, при желании можно написать команду без использования «\» только в одной строке.
Шаг 2) Добавьте официальный ключ Docker GPG с отпечатком. Используйте приведенную ниже команду Docker для ввода ключа GPG.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Шаг 3) Далее добавьте репозиторий Docker APT, используя приведенную ниже команду.
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Возможно, вам будет предложено подтвердить добавление репозитория и автоматическое добавление ключа GPG на ваш хост. Команда lsb_release должна заполнить поле Ubuntu версия дистрибутива вашего хоста.
Шаг 4) После добавления ключа GPG обновите источники APT, используя приведенную ниже команду Docker.
$ sudo apt-get update
Теперь вы можете установить сам пакет Docker.
Шаг 5) После обновления источников APT начните установку пакетов Docker. Ubuntu используя приведенную ниже команду Docker.
$ sudo apt-get install docker-ce
Приведенная выше команда устанавливает Docker и другие необходимые пакеты. До версии Docker 1.8.0 название пакета было lxc-docker, а в период между версиями Docker 1.8 и 1.13 — docker-engine.
ПРИМЕЧАНИЕ: Докер для Windows требуется Windows 10 Pro или Enterprise версии 14393 или Windows Сервер 2016 RTM, готов к запуску.
Как использовать Docker с помощью основных команд Docker
Вот как использовать Docker с помощью нескольких основных команд Docker.
Как уже упоминалось, после установки Docker следует выполнить самую основную команду — docker info.
$ sudo docker info
В результате вы должны получить примерно следующее.
Как показано в приведенном выше примере с Docker, мы можем видеть информацию о контейнерах Docker: сколько из них запущено, приостановлено или остановлено, а также сколько образов было загружено. Теперь давайте получим наш первый образ.
$ sudo docker pull alpine
С помощью этой команды мы указываем Docker загрузить образ alpine, получив его из общедоступного реестра в последней версии, что установлено по умолчанию.
*alpine — это минимальный образ Docker на базе Alpine Linux с полным индексом пакетов и размером всего 5 МБ.
Если мы хотим запустить образ в качестве контейнера, мы используем следующую команду.
$ sudo docker run -i -t alpine /bin/bash
Выполнение команды отправляет нас непосредственно в терминал Alpine. Флаг -i поддерживает STDIN открытым из контейнера, даже когда вы к нему не подключены; этот постоянный стандартный ввод — это одна половина того, что вам нужно для интерактивной оболочки. Флаг -t — это другая половина, которая указывает Docker назначить контейнеру псевдотерминал. Вместе они предоставляют нам интерактивную оболочку в новом контейнере. Мы выходим из контейнера с помощью простой команды exit.
Теперь в этом базовом руководстве по Docker мы можем попробовать запустить Ubuntu изображения.
$ sudo docker run -it ubuntu /bin/bash
Обратите внимание, что Docker проверяет наличие образа локально, и если его нет, образ автоматически загружается из библиотеки образов. И снова у нас работает интерактивная оболочка. Мы также можем присваивать имена контейнерам по мере их запуска.
$ sudo docker run –-name our_container -it ubuntu /bin/bash
Затем мы снова выходим. Мы также можем запустить ранее созданный контейнер без интерактивной оболочки.
$ sudo docker start container_name
И мы останавливаем контейнер, написав команду `docker stop container_name`.
$ sudo docker stop container_name
Чтобы увидеть все запущенные контейнеры, достаточно выполнить следующую команду.
$ docker ps
Для всех контейнеров мы добавляем «-a» в конец той же команды, например, docker ps -a. Эта команда показывает идентификатор контейнера, используемый образ, дату создания, статус работы, открытые порты и случайно сгенерированное имя для упрощения управления.
При запуске контейнеров нам часто требуется узнать, сколько ресурсов они используют. Для этой цели мы можем использовать следующую команду.
$ docker stats
Вы также можете увидеть, какие изображения вы загрузили локально, а также информацию о них.
$ sudo docker images
В приведенном выше примере Docker команда отображает каждый образ Docker с тегом, указывающим версию образа, уникальный идентификатор образа, дату создания и размер образа.
Чтобы понять, почему контейнеры представляют собой такое значительное улучшение, полезно взглянуть на эволюцию виртуализации.
Что такое виртуализация?
Раньше развертывание сервиса было медленным и трудоемким процессом. Разработчики писали код, а затем команда эксплуатации развертывала его на физических серверах, где им приходилось следить за версиями библиотек, патчами и компиляторами языков, чтобы код работал. Если возникали ошибки, процесс начинался заново: разработчики исправляли проблему, а команда эксплуатации выполняла повторное развертывание.
Ситуация улучшилась с появлением гипервизоров. Гипервизоры запускают несколько систем одновременно. виртуальные машиныВиртуальные машины (ВМ) на одном хосте могут быть запущены или выключены. ВМ значительно сократили время ожидания развертывания кода и исправления ошибок, но настоящим прорывом стали контейнеры Docker.
Популярность Docker также обусловлена инструментами оркестрации, которые позволяют управлять контейнерами в больших масштабах, такими как... KubernetesПрежде чем продолжить, вот краткий справочник наиболее важных команд Docker.
Важные команды Docker
Ниже приведены важные команды Docker:
| Command | Описание |
|---|---|
| информация о докере | Информационная команда |
| докер тянуть | Скачать изображение |
| docker run -i -t имя_изображения /bin/bash | Запустить изображение как контейнер |
| докер запускает наш_контейнер | Запустить контейнер |
| остановка докера имя_контейнера | Остановить контейнер |
| docker ps | Список всех запущенных контейнеров |
| статистика докера | Информация о контейнере |
| Изображение docker | Список загруженных изображений |
| Очистка Докера | Убейте все работающие контейнеры. |
Кроме того, прочитайте эти Вопросы и ответы на собеседовании в Docker Подходит как для начинающих, так и для опытных специалистов.

