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

by moiseevrus

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

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

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

 

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

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

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

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

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

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

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

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

 

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

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

 

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

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

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

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

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

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

Докер-контейнеры

Контейнеры — это организационные единицы и одна из основных концепций 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

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

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

$ sudo docker pull alpine

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

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

Если мы хотим запустить образ как контейнер, мы будем использовать следующую команду в этом руководстве по 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 ps

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

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

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

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

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

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

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

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

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

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

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

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

Резюме

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


You may also like

Leave a Comment