Учебное пособие по Docker - Введение в Docker и контейнеризацию



В этом руководстве по Docker вы поймете необходимость Docker и познакомитесь с Docker. Это первый блог из серии руководств по Docker.

Надеюсь, вы не пропустили серию предыдущих блогов, посвященных DevOps Tutorial. Пройти через Вот.Неудержимая тенденция контейнеров Docker растет, и организации ищут профессионалов, обладающих .На этот раз мы познакомим вас с Docker.

Учебник по Docker

Этот блог с учебным пособием по Docker даст вам концептуальное и практическое представление о Docker - технологии контейнеризации нового века.





В этом блоге мы сосредоточимся на следующих темах:

передать по значению в java
  • Что такое виртуализация?
  • Что такое контейнеризация
  • Преимущества контейнеризации перед виртуализацией
  • Введение в Docker
  • Преимущества Docker
  • Виртуализация против контейнеризации
  • Установка Docker
  • Dockerfile, образ Docker и контейнер Docker
  • Что такое Docker Hub?
  • Докер Архитектура
  • Docker Compose

Докер набирает популярность, и его использование распространяется как лесной пожар. Причина растущей популярности Docker заключается в том, насколько его можно использовать в ИТ-организации. Очень немногие инструменты могут оказаться полезными как для разработчиков, так и для системных администраторов. Docker - один из таких инструментов, который действительно оправдывает свое обещание Построить , Корабль и Бегать .



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

Например: Давайте рассмотрим приложение на базе Linux, написанное как на Ruby, так и на Python. Для этого приложения требуется определенная версия Linux, Ruby и Python. Чтобы избежать конфликтов версий на стороне пользователя, можно создать контейнер docker linux с необходимыми версиями Ruby и Python, установленными вместе с приложением. Теперь конечные пользователи могут легко использовать приложение, запустив этот контейнер, не беспокоясь о зависимостях или конфликтах версий.

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



Обычно в этот момент у меня возникает вопрос: в чем разница между виртуализацией и контейнеризацией? Эти два термина очень похожи друг на друга. Итак, позвольте мне сначала рассказать вам, что такое виртуализация?

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

Виртуализация - это метод импорта гостевой операционной системы поверх операционной системы хоста. Вначале этот метод был открытием, поскольку позволял разработчикам запускать несколько операционных систем на разных виртуальных машинах, работающих на одном хосте. Это устранило необходимость в дополнительных аппаратных ресурсах. Преимущества виртуальных машин или виртуализации:

  • На одном компьютере могут работать несколько операционных систем
  • Обслуживание и восстановление были простыми в случае сбоя.
  • Общая стоимость владения также была меньше из-за уменьшения потребности в инфраструктуре.

Архитектура виртуальной машины - Учебное пособие по Docker по введению в Docker - Edureka

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

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

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

Ниже приведены недостатки виртуализации:

  • Запуск нескольких виртуальных машин приводит к нестабильной работе
  • Гипервизоры не так эффективны, как операционная система хоста
  • Процесс загрузки долгий и требует времени

Эти недостатки привели к появлению новой техники, называемой контейнеризацией. Теперь позвольте мне рассказать вам о контейнеризации.

Что такое контейнеризация?

Контейнеризация - это метод доведения виртуализации до уровня операционной системы. В то время как виртуализация привносит абстракцию в оборудование, контейнеризация привносит абстракцию в операционную систему. Обратите внимание, что контейнеризация также является разновидностью виртуализации. Однако контейнеризация более эффективна, поскольку здесь нет гостевой ОС, и она использует операционную систему хоста, совместно использует соответствующие библиотеки и ресурсы по мере необходимости, в отличие от виртуальных машин. Бинарные файлы для конкретных приложений и библиотеки контейнеров запускаются в ядре хоста, что делает обработку и выполнение очень быстрыми. Даже загрузка контейнера занимает всего доли секунды. Поскольку все контейнеры совместно используют операционную систему хоста и содержат только двоичные файлы и библиотеки, связанные с приложением. Они легче и быстрее виртуальных машин.

Преимущества контейнеризации перед виртуализацией:

  • Контейнеры на одном ядре ОС легче и меньше
  • Лучшее использование ресурсов по сравнению с виртуальными машинами
  • Процесс загрузки короткий и занимает несколько секунд

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

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

Посмотрите это обучающее видео по Docker, чтобы получить более глубокое представление о Docker.

Учебное пособие по Docker для начинающих | Что такое докер? | Инструменты DevOps | Эдурека

Теперь позвольте мне познакомить вас с Docker.

Учебное пособие по Docker - Введение в Docker

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

c ++ идет сортировка

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

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

Преимущества Docker

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

Виртуализация против контейнеризации

И виртуализация, и контейнеризация позволяют запускать несколько операционных систем на одной машине.

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

Рисунок: Что такое аналитика больших данных - виртуализация против контейнеризации

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

Теперь давайте установим Docker.

Установите Docker:

Я буду устанавливать Docker на свой компьютер с Ubuntu 17.10. Ниже приведены шаги по установке Docker:

  1. Установите необходимые пакеты
  2. Настроить репозиторий Docker
  3. Установить Docker в Ubuntu

1. Установите необходимые пакеты:

Для установки Docker в вашей системе требуются определенные пакеты. Выполните команду ниже, чтобы установить эти пакеты.

sudo apt-get install curl apt-transport-https ca-сертификаты общие свойства программного обеспечения

2. Настройте репозиторий Docker:

Теперь импортируйте официальный ключ GPG Dockers, чтобы проверить подпись пакетов перед их установкой с помощью apt-get. Запустите следующую команду на терминале:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key добавить

Теперь добавьте репозиторий Docker в вашу систему Ubuntu, который содержит пакеты Docker, включая его зависимости, для этого выполните следующую команду:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) стабильный »

3. Установите Docker в Ubuntu:

Теперь вам нужно обновить apt index и установить версию сообщества Docker, для этого выполните следующие команды:

sudo apt-get update sudo apt-get install docker-ce

Поздравляю! Вы успешно установили Docker. Также обратите внимание на несколько часто используемых Команды Docker .

Теперь давайте посмотрим на несколько важных концепций Docker.

Dockerfile, образ Docker и контейнер Docker:

  1. Образ Docker создается последовательностью команд, записанных в файле с именем Dockerfile.
  2. Когда этот файл Dockerfile выполняется с помощью команды docker, в результате создается образ Docker с именем.
  3. Когда этот образ выполняется командой «docker run», он сам запускает любое приложение или службу, которые необходимо запустить при выполнении.

Docker Hub:

Docker Hub похож на GitHub для образов Docker. По сути, это облачный реестр, в котором вы можете найти образы Docker, загруженные разными сообществами, также вы можете разработать свой собственный образ и загрузить его в Docker Hub, но сначала вам нужно создать учетную запись на DockerHub.

как создать случайную строку в Java

Докер-архитектура:

Он состоит из Docker Engine, который представляет собой клиент-серверное приложение с тремя основными компонентами:

  1. Сервер, который представляет собой тип долго выполняющейся программы, называемой процессом демона (команда docker).
  2. REST API, который определяет интерфейсы, которые программы могут использовать, чтобы общаться с демоном и указывать ему, что делать.
  3. Клиент интерфейса командной строки (CLI) (команда docker).
  4. Интерфейс командной строки использует Docker REST API для управления демоном Docker или взаимодействия с ним с помощью сценариев или прямых команд интерфейса командной строки. Многие другие приложения Docker используют базовый API и интерфейс командной строки.

Обратитесь к этому блогу, чтобы узнать больше о .

Наконец, в этом блоге Docker Tutorial я расскажу о Docker Compose.

Docker Compose:

Docker Compose в основном используется для запуска нескольких контейнеров Docker как одного сервера. Позволь мне привести пример:

Предположим, у меня есть приложение, которое требует WordPress, Maria DB и PHP MyAdmin. Я могу создать один файл, который запускал бы оба контейнера как службу без необходимости запускать каждый из них отдельно. Это действительно полезно, особенно если у вас микросервисная архитектура.

Ссылай мой блог на Контейнер Docker чтобы понять, как это выполнить практически.

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

На этом мы подошли к концу первого блога Docker Tutorial, посвященного введению в Docker и контейнеризацию.

Прочтите наш следующий блог о Docker:

Теперь, когда вы поняли, что такое DevOps, ознакомьтесь с нашими от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс Edureka DevOps Certification Training помогает учащимся получить опыт работы с различными процессами и инструментами DevOps, такими как Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack и GIT, для автоматизации нескольких шагов в SDLC.

Есть вопрос к нам? Пожалуйста, укажите это в комментариях, и мы свяжемся с вами.