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

Что такое Докер?

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

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

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

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

Зачем использовать Докер?

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

Докер Архитектура

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

Докер Архитектура
Докер Архитектура

Докер Двигатель

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

Докер-образы

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

Докер-реестры

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

Контейнеры Docker

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

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

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

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

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

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

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

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

Используйте команду ниже для установки пакетов 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.

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

$ 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.

ЗАМЕТКА: Для запуска Docker для Windows требуется Windows 10 Pro или Enterprise версии 14393 или Windows Server 2016 RTM.

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

Вот как использовать Docker, используя основные команды Docker:

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

$ sudo docker info

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

Используйте Docker, используя основные команды Docker

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

$ sudo docker pull alpine

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

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

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

$ sudo docker run -i -t alpine /bin/bash

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

Теперь в этом руководстве по основам 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, остановите имя_контейнера

$ sudo docker stop container_name

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

$ docker ps

И для всех контейнеров мы добавляем «-a» в конце этой же команды, как в этом docker ps -a.

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

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

$ docker stats

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

$ sudo docker images

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

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

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

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

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

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

Command Описание
информация о докере Информационная команда
докер тянуть Скачать изображение
docker run -i -t имя_изображения /bin/bash Запустить изображение как контейнер
докер запускает наш_контейнер Запустить контейнер
остановка докера имя_контейнера Остановить контейнер
docker ps Список всех запущенных контейнеров
статистика докера Информация о контейнере
Изображение docker Список загруженных изображений
Очистка Докера Убейте все работающие контейнеры.

Также читайте Вопросы и ответы на собеседовании в Docker как для новичков, так и для опытных специалистов.

Итоги

  • Docker — это платформа разработки программного обеспечения для виртуализации с несколькими операционными системами, работающими на одном хосте. Это помогает разделить инфраструктуру и приложения для быстрой доставки программного обеспечения.
  • Докер-архитектура: Docker Engine, образы Docker, реестры Docker, контейнеры Docker.
  • Докер-движок: Docker — это приложение клиент-серверного типа, что означает, что у нас есть клиенты, которые передают данные на сервер. Итак, демон Docker вызвал: dockerd — это движок Docker, который представляет сервер.
  • Докер-образы: Образы Docker — это «исходный код» наших контейнеров; мы используем их для создания контейнеров. У них может быть предварительно установлено программное обеспечение, которое ускоряет развертывание. Они портативны, и мы можем использовать существующие образы или создавать свои собственные.
  • Докер-реестры: Docker хранит образы, которые мы создаём, в реестрах. Существуют государственные и частные реестры. Компания Docker имеет общедоступный реестр под названием Docker Hub, где вы также можете хранить изображения в частном порядке. В Docker Hub есть миллионы образов, которые вы можете начать использовать прямо сейчас.
  • Докер-контейнеры: Контейнеры — это организационные единицы и одна из основных концепций Docker. Когда мы создаем образ и начинаем его запускать; мы работаем в контейнере. Аналогия с контейнером используется из-за переносимости программного обеспечения, которое мы запускаем в нашем контейнере.