fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

Самоучитель по Docker для начинающих: Основы, архитектура, контейнеры

Самоучитель по Docker для начинающих: Основы, архитектура, контейнеры

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

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

В отличие от виртуальных машин, которые могут взаимодействовать с аппаратным обеспечением хоста (например, Ethernet-адаптер для создания дополнительных виртуальных адаптеров), контейнеры Docker работают в изолированной среде поверх операционной системы хоста. Даже если на вашем хосте установлена ОС Windows, вы можете запускать образы Linux в контейнерах с помощью Hyper-V, который автоматически создает небольшие виртуальные машины для виртуализации базового образа системы, в данном случае Linux.

В этом учебнике по Docker для начинающих вы узнаете такие основы Docker, как:

Зачем использовать Docker?

  • Docker – это компьютерное программное обеспечение, используемое для виртуализации, чтобы иметь несколько операционных систем, работающих на одном хосте.
  • Docker – это клиент-серверный тип приложения, то есть у нас есть клиенты, которые передают данные на сервер.
  • Образы Docker – это “исходный код” для наших контейнеров; мы используем их для сборки.
  • Dockerfile имеет два типа реестров 1.) публичный и 2)приватный реестры
  • Контейнеры – это организационные единицы тома Docker. Проще говоря, образ – это шаблон, а контейнер – копия этого шаблона. Вы можете иметь несколько контейнеров (копий) одного и того же образа.

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

Теперь в этом учебнике по контейнерам Docker поговорим об основных компонентах архитектуры Docker:

Docker Engine

Docker – это клиент-серверный тип приложения, что означает, что у нас есть клиенты, которые передают данные на сервер. Поэтому демон Docker под названием: dockerd – это движок Docker, который представляет сервер. Демон docker и клиенты могут быть запущены на одном и том же или удаленном хосте, и они взаимодействуют через бинарные клиенты командной строки, а также через полный RESTful API для взаимодействия с демоном: dockerd.

Образы Docker

Образы Docker – это “исходный код” для наших контейнеров; мы используем их для сборки контейнеров. В них может быть предустановлено программное обеспечение, что ускоряет развертывание. Они переносимы, и мы можем использовать существующие образы или создавать свои собственные.

Реестры Docker

Docker хранит созданные нами образы в реестрах. Существуют публичные и частные реестры.

Контейнеры – это организационные единицы и одна из базовых концепций Docker. Когда мы создаем образ и запускаем его, мы работаем в контейнере. Аналогия с контейнером используется из-за переносимости программного обеспечения, запущенного в нашем контейнере. Мы можем перемещать его, другими словами, “перевозить” программное обеспечение, изменять, управлять, создавать или избавляться от него, уничтожать его, точно так же, как грузовые суда могут делать это с настоящими контейнерами.

Проще говоря, образ – это шаблон, а контейнер – копия этого шаблона. У вас может быть несколько контейнеров (копий) одного и того же изображения.

Ниже мы приводим изображение, которое прекрасно представляет взаимодействие между различными компонентами и то, как работает контейнерная технология Docker.

У нас есть несколько команд docker: docker pull, docker run… подробнее об этом мы поговорим позже.

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

Ниже приведен пошаговый процесс установки Docker на Linux/Ubuntu:

Шаг 1 ) Для установки Docker нам нужно использовать DEB-пакеты команды Docker.

Для этого необходимы некоторые предварительные пакеты Ubuntu.

Для установки пакетов Ubuntu используйте следующую команду

*Знак “” не является обязательным, он используется для новой строки, если хотите, можете написать команду без использования “” в одной строке.

Шаг 2) Добавьте официальный GPG ключ Docker с отпечатком пальца.

Используйте приведенную ниже команду Docker для ввода GPG-ключа.

Шаг 3) Далее добавьте репозиторий Docker APT.

Используйте приведенную ниже команду Docker для добавления репозитория.

Вам может быть предложено подтвердить, что вы хотите добавить репозиторий и автоматически добавить ключ GPG на ваш хост.

Команда lsb_release должна ввести версию дистрибутива Ubuntu для вашего хоста.

Шаг 4) После добавления ключа GPG,

Обновите источники APT с помощью приведенной ниже команды Docker.

Теперь мы можем установить сам пакет Docker.

Шаг 5) После обновления источников APT,

Начните установку пакетов Docker на Ubuntu с помощью приведенной ниже команды Docker

Приведенная выше команда устанавливает Docker и другие дополнительные необходимые пакеты. До версии Docker 1.8.0 имя пакета было lxc-docker, а между версиями Docker 1.8 и 1.13 имя пакета было docker-engine.

ПРИМЕЧАНИЕ : Для работы Docker для Windows требуется Windows 10 Pro или Enterprise версии 14393, или Windows server 2016 RTM.

Как использовать Docker с помощью основных команд Docker

Здесь описано, как использовать Docker с помощью основных команд Docker:

Самой основной командой, которую мы должны выполнить после установки Docker, является $ docker info, как мы уже говорили ранее.

Вы должны получить аналогичный или следующий результат

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

С помощью этой команды мы говорим docker загрузить образ alpine, взять его из публичного реестра, последнюю версию, которая установлена по умолчанию.

*alpine – это минимальный образ Docker на базе Alpine Linux с полным индексом пакетов и размером всего 5 МБ.

Если мы хотим запустить образ как контейнер, мы воспользуемся следующей командой в этом руководстве по Docker tutorials.

Если мы выполним команду, мы будем отправлены непосредственно на терминал alpine. Фла г-i сохраняет STDIN открытым из контейнера, даже когда вы не подключены к нему. Этот постоянный стандартный ввод – одна половина того, что требуется для интерактивной оболочки. Фла г-t – это вторая половина, которая указывает Docker назначить псевдотерминал контейнеру. Таким образом, мы получаем интерактивную оболочку в новом контейнере. Мы выходим из контейнера с помощью простой команды exit.

Теперь в этом учебнике по основам Docker мы можем попробовать запустить образ Ubuntu.

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

И мы снова выходим.

Мы также можем запустить контейнер, который мы ранее создали, без интерактивной оболочки.

И остановить контейнер, написав docker stop имя_контейнера.

Если мы хотим увидеть все запущенные контейнеры, мы просто выполняем команду

И для всех контейнеров добавляем “- a” в конце этой же команды, вот так docker p s-a.

Эта команда показывает ID контейнера, используемый образ, когда он был создан, статус работы, открытые порты и произвольно сгенерированное имя контейнера для упрощения управления.

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

Вы также можете посмотреть, какие образы мы загрузили локально, и информацию о них.

Команда в приведенном выше примере Docker отображает образ docker с тегом, который показывает версию нашего образа, отличительный идентификатор образа, время создания и размер образа.

Что такое виртуализация?

Раньше процесс развертывания сервиса был медленным и мучительным. Сначала разработчики писали код; затем операционная команда развертывала его на “голых” машинах, где им приходилось следить за версиями библиотек, патчей и компиляторов языка, чтобы код работал. Если возникали какие-то ошибки, процесс начинался заново, разработчики исправляли их, а затем операционная команда снова принималась за развертывание.

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

Важные команды Docker

Ниже перечислены важные команды Docker:

Команда

Описание docker info
Информационная команда docker pull
Загрузить образ docker ru n-i -t имя_образа /bin/bash
Запустите образ в качестве контейнера docker start our_container
Запустить контейнер docker stop имя_контейнера
Остановить контейнер docker ps
Список запущенных контейнеров docker stats
Информация о контейнере образы docker
Список загруженных образов Очистка Docker
Уничтожить все запущенные контейнеры. Читайте также вопросы и ответы на собеседовании по Docker как для начинающих, так и для опытных специалистов.

Виртуализация в Docker в сравнении с гипервизором

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *