Учебное пособие по Docker для начинающих: основы, Archiтектура, Контейнеры
Что такое Докер?
Docker это платформа разработки программного обеспечения для виртуализации с несколькими Operating систем, работающих на одном хосте. Это помогает разделить инфраструктуру и приложения для быстрой доставки программного обеспечения. В отличие от гипервизоров, которые используются для создания виртуальных машин (виртуальных машин), виртуализация в Docker выполняется на уровне системы, также называемой контейнерами Docker.
Как вы можете видеть разницу на изображении ниже, контейнеры Docker запускаются поверх хоста. Operaционная система. Это поможет вам повысить эффективность и безопасность. Более того, мы можем запускать больше контейнеров в одной и той же инфраструктуре, чем виртуальные машины, поскольку контейнеры используют меньше ресурсов.
В отличие от виртуальных машин, которые могут взаимодействовать с оборудованием хоста (например, адаптером Ethernet для создания большего количества виртуальных адаптеров), контейнеры Docker работают в изолированной среде поверх ОС хоста. Даже если ваш хост работает Windows ОС, вы можете запускать образы Linux в контейнерах с помощью Hyper-V, который автоматически создает небольшую виртуальную машину для виртуализации базового образа системы, в данном случае: Linux.
Зачем использовать Докер?
- Docker — это компьютерное программное обеспечение, используемое для виртуализации, позволяющее иметь несколько Operaтинговые системы работает на том же хосте
- Docker — это приложение клиент-серверного типа, что означает, что у нас есть клиенты, которые передают данные на сервер.
- Образы Docker — это «исходный код» наших контейнеров; мы используем их для создания
- Dockerfile имеет два типа реестров: 1) публичные и 2) частные реестры.
- Контейнеры — это организационные единицы тома Docker. Проще говоря, изображение — это шаблон, а контейнер — копия этого шаблона. У вас может быть несколько контейнеров (копий) одного и того же образа.
Docker Archiтекстура
Теперь в этом руководстве по контейнерам Docker давайте поговорим об основных компонентах Docker в Docker. Archiтекстура:
Докер Двигатель
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.
ЗАМЕТКА: Докер для Windows требуется Windows 10 Pro или Enterprise версии 14393 или Windows сервер 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, остановите имя_контейнера
$ 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 — это платформа разработки программного обеспечения для виртуализации с несколькими Operating систем, работающих на одном хосте. Это помогает разделить инфраструктуру и приложения для быстрой доставки программного обеспечения.
- Docker Archiтекстура: Docker Engine, образы Docker, реестры Docker, контейнеры Docker.
- Докер-движок: Docker — это приложение клиент-серверного типа, что означает, что у нас есть клиенты, которые передают данные на сервер. Итак, демон Docker вызвал: dockerd — это движок Docker, который представляет сервер.
- Докер-образы: Образы Docker — это «исходный код» наших контейнеров; мы используем их для создания контейнеров. У них может быть предварительно установлено программное обеспечение, которое ускоряет развертывание. Они портативны, и мы можем использовать существующие образы или создавать свои собственные.
- Докер-реестры: Docker хранит образы, которые мы создаём, в реестрах. Существуют государственные и частные реестры. Компания Docker имеет общедоступный реестр под названием Docker Hub, где вы также можете хранить изображения в частном порядке. В Docker Hub есть миллионы образов, которые вы можете начать использовать прямо сейчас.
- Докер-контейнеры: Контейнеры — это организационные единицы и одна из основных концепций Docker. Когда мы создаем образ и начинаем его запускать; мы работаем в контейнере. Аналогия с контейнером используется из-за переносимости программного обеспечения, которое мы запускаем в нашем контейнере.