Зачем нужен Докер?

Java

предисловие

Только лысая голова может стать сильнее.

Текст был включен в мой репозиторий GitHub, добро пожаловать, звезда:GitHub.com/Zhongf UC очень…

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

Итак, я узнал о Docker за последние несколько дней и резюмировал Docker.начинаяАктуальные знания о , и поделиться ими со всеми (чтобы мы могли похвастаться вместе).

Docker LoGo

I need a doctor,call me a doctor. I need a doctor, doctor, to bring me back to life .

1. Зачем вам нужен Докер

Официальное введение (китайская версия):woohoo.docker-capable.com/what-docker…

Docker — ведущая в мире платформа для создания программных контейнеров. Разработчики используют Docker, чтобы устранить проблему «просто работает на моей машине» при совместном кодировании. Операторы могут использовать Docker для параллельного запуска приложений и управления ими в изолированных контейнерах для повышения вычислительной плотности. С помощью Docker предприятия могут создавать гибкие конвейеры доставки программного обеспечения для выпуска новых функций для приложений Linux и Windows Server с более высокой скоростью, улучшенной безопасностью и надежной репутацией.

1.1 Среда (переключение/конфигурация) проблематичная

Как правило, когда мы пишем программы, мы можем вступить в контакт с несколькимиокрестности:

  • Среда, в которой вы пишете свой собственный код, называется средой разработки.
  • Среда, в которой выполняются тесты, называется тестовой средой.
  • После тестирования среда, которую можно использовать извне, называется рабочей средой.

На самом деле, когда мы изучаем программирование, очень много времени тратится на «окружение»:

  • Если я переустановлю систему сейчас, я хочу запуститьwar/jarPackage, мне нужно установить JDK, Tomcat, MySQL и т. д. и настроить различные переменные среды для запуска.
  • Я с удовольствием следую инструкциям блоггера по написанию демо, но всегда есть ошибки. (Здесь я будуверсия/зависимостьТакже входит в категорию окружающей среды).
  • После окончательного запуска в тестовой среде в производственной среде возникают всевозможные ошибки!
  • Следуйте обучающему видео, чтобы создать распределенный/кластерный проект, запустить несколько виртуальных машин и установить соответствующую среду для каждой виртуальной машины.

Так что есть шутка "Не говорите программистам, что в вашем коде есть баги":

  • Его первая реакция - вашапроблемы окружающей среды, второе - ты дурак и не будешь его использовать.
  • Вы должны сказать ему: «Как эта программа работает не так, как ожидалось, что-то не так с моей операцией?».
  • На этот товар будет первая реакция "Вытираю, это баг?"

1.2 Приложения должны быть изолированы

Например, если я пишу два приложения (веб-сайта), и эти два приложения развернуты на одном сервере, какие проблемы могут возникнуть?

  • Если у приложения есть проблема, заставляющая ЦП занимать 100%. Это другое приложение также будет связано и круто с ним.
  • Эти два приложения являются приложениями совершенно разных технологических стеков, таких как одноPHP,Один.NET. Оба приложенияРазличные зависимости программного обеспеченияустановлены на одном сервере, что может привести кРазличные конфликты/несовместимость, который может быть очень проблематичным для отладки.

Во-вторых, как Docker решает вышеуказанные проблемы

2.1 Решение окружения (переключение/настройка)

Я не знаю, если вы установили систему, например, устанавливая виртуальную машину Linux и повторную установку системы Windows, все из которых требуются.зеркалоиз.

镜像

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

Тем не менее, учащиеся, которые поняли систему установки, могут знать, что некоторые образы могут по-прежнему иметь программное обеспечение 360 после установки, но система действительноизмененный. Проще говоря, это зеркалаДобавить кдругие вещи (например, программное обеспечение 360, Tencent, Qianqianjingting и т. д.).

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

С Docker, когда мы настраиваем среду, она отличается от предыдущей.

  • До: Создайте военный пакет в среде разработки и хотите запустить его под Linux. Сначала мы должны загрузить Java, Tomcat и MySQL в Linux, настроить соответствующие переменные среды и поместить военный пакет в папку веб-приложений Tomcat, прежде чем он сможет работать.
  • в настоящее время: Скинуть образ прямо под линуксом (всякие окружения готовы), запустить образ, и закинуть в него war package.

DockerHub提供了很多镜像

Запуск образа Docker занимает всего секунду или две, что очень удобно.

2.2 Устранение изоляции между приложениями

Говоря об этом, мы должны предложить концепцию, которую все могут не знать: LXC (контейнеры Linux) ---> контейнеры Linux.

2.2.1 Контейнеры Linux

В ядре Linux предусмотреноcgroupsфункция для достижения сегментации ресурсов. Он также предоставляет пространства имен (namespace) дифференцированные функции,Видимая приложением среда операционной системы разделена на независимые области., включая дерево процессов, сеть, идентификатор пользователя и смонтированную файловую систему.

В двух словах: LXC — это многофункциональная функция для ядра Linux.пользовательский интерфейс. Благодаря мощным API и простым инструментам пользователи Linux могут легко создавать и размещать системы или контейнеры приложений.

2.2.2 Вернуться к Докеру

Когда мы смотрим на официальную документацию Docker, легко увидеть два термина cgroup и namespace:

官方文档截图

Источник Википедия:

Early versions of Docker used LXC as the container execution driver, though LXC was made optional in v0.9 and support was dropped in Docker v1.10.

lxc этоболее ранняя версияБазовый компонент докера, который в основном используется докером для управления двумя функциями ядра Cgroup и Namespace. В новой версии Docker естьудаленныйПоддержка LXC.

2.2.3 Докер в Windows и Mac

Как упоминалось выше, две технологии Linux cgroup и namespace используются в нижней части Docker для достиженияИзоляция приложений, Могут ли пользователи Windows и Mac использовать Docker?

  • До, Windows и Mac, использующие Docker, фактически запускают слой виртуальной машины Linux.
    • Например, под Windows установкаDocker Toolbox, это нужноOracle Virtual Boxзапускать докер
  • в настоящее время, Docker изначально поддерживается как в Windows, так и в Mac. но нужно немногоусловия установки, вы можете проверить официальный сайт для деталей
    • Например Windows:Docker for Windows requires 64bit Windows 10 Pro and Microsoft Hyper-V

Использованная литература:

3. Виртуальные машины и докер

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

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

Эта часть контента также представлена ​​на официальном сайте:

容器和Docker的区别

Резюме одним предложением: контейнеры Docker лучше, чем виртуальные машиныЛегкийперебор!

Наконец

Что может Докер?

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

На самом деле, эта статья в основном о том, зачем нам нужен Docker (Прежде чем изучать технологию, вы должны знать, для чего она используется.), я не представил некоторые понятия и команды Docker (оставим это для следующей статьи). Если вы еще не видели[Сцена из жизни] Анализ сценариев применения докеров от перехода на контейнерные технологии, вы можете сначала взглянуть~

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

С удовольствием делюсь и экспортируюгалантерейные товарыОбщедоступный номер технологии Java:Java3y. Подпишитесь, чтобы получать огромные видеоресурсы!

帅的人都关注了

Я думаю, что моя статья хорошо написана, пожалуйста, нажмитеотличный!