Предисловие:
Про Docker я слышал давно, но из-за нехватки времени (то есть мне было лень учиться) так и не начал принимать меры.До недавнего времени в этом семестре было относительно мало занятий. знаю, что делать Забудьте об этом, давайте учиться. Так начался мой долгий путь изучения Docker. Конечно, когда я писал эту заметку, у меня уже было предварительное представление о Docker, поэтому у меня есть эта серия заметок об изучении Docker для начинающих.Почему это новичок, потому что я думаю, что понимаю DockerОн все еще находится на относительно элементарной стадии , а более продвинутый контент боится быть неясным, чтобы ввести других в заблуждение.Есть две основные причины для написания этой серии заметок.Во-первых, чтобы сделать всестороннее понимание того, что я узнал на этом этапе.Расчесывание и обобщение, а во-вторых, я буду делать заметки об этих знаниях с помощью своего кокетливого метода письма, чтобы помочь друзьям, которые позже изучают Docker, легче понять знания и концепции, связанные с Docker.Эта статья является первой статьей основной статьи, в которой основное внимание будет уделено следующие три вопроса:
- Что такое Докер?
- Почему Докер?
- Какие проблемы конкретно решает Docker?
что такое докер?
Docker — это облачный проект с открытым исходным кодом, выпущенный в 2013 году на основе языка Go, который использует существующие концепции вычислений вокруг контейнеров, особенно в мире Linux, эти оригинальные концепции называются cgroups и namespaces. Технология Docker уникальна, поскольку ориентирована на потребности разработчиков и системных операторов в отделении зависимостей приложений от инфраструктуры.
Основная цель Docker — «Сборка, отправка и запуск любого приложения в любом месте», то есть посредством управления жизненным циклом компонентов приложения, таких как упаковка, распространение, развертывание и эксплуатация, приложение пользователя (которое может быть веб-приложение или приложение базы данных) и т. д.) и его операционная среда могут обеспечить «упаковать один раз, запустить везде».
Вкратце в одном предложении,Появление Docker устраняет несоответствие между рабочей средой и средой конфигурации, что упрощает непрерывную интеграцию и способствует общему выпуску приложения.
Почему Докер?
Чтобы понять эту проблему, нам нужно понять, какой была традиционная технология виртуальных машин до Docker.Я считаю, что каждый использовал программное обеспечение виртуальной машины для виртуализации другой операционной системы на своем компьютере.vm устанавливает систему Linux, традиционная виртуальная машина на самом деле решение с установкой среды, то есть то, что я имитирую, представляет собой полную среду операционной системы, эта система все еще имеет свое независимое ядро, драйверы и т. д.
как показано на рисунке:
Для программ, работающих на виртуальной машине, поскольку виртуальная машина имитирует полную системную среду, приложение, работающее на виртуальной машине, не знает, что оно работает на виртуальной машине, точно так же, как и реальная операция.Система работает так же.
Конечно, увидев это, многие могут подумать, а разве это не хорошо? Ведь когда потребность не очень велика, например, нужно всего лишь открыть две-три дополнительные виртуальные машины, очевидных недостатков у такого подхода нет. , так как мы моделируем среду полноценной операционной системы, в чем проблема?Каждый раз, когда мы открываем виртуальную машину, это будет занимать много дополнительных ресурсов, хотя у вас может быть ядро системы linux в двух виртуальных машинах. Это точно так же, что приводит к большой трате ресурсов.В то же время, поскольку мы запускаем целый набор операционных систем при запуске виртуальной машины, это приведет к тому, что запуск станет очень медленным, что может занять некоторое время. несколько минут, конечно, несколько минут — это не очень долго, но что делать, если виртуальных машин много? Может быть, когда инженер по эксплуатации и обслуживанию, наконец, запустил все виртуальные машины и обнаружил, что всплеск активности закончился, такое долгое время запуска невыносимо для многих крупномасштабных приложений. три основных недостатка традиционных виртуальных машин:
- Больше ресурсов занято
- Запуск медленный
- Громоздкие шаги
Конечно, какими бы продвинутыми ни были времена, linux не может просто игнорировать эти проблемы, поэтому linux разработал еще одну технологию виртуализации, то есть технологию контейнеров linux.
Что такое технология контейнеров linux?Это похоже на нашу идею извлечения общей логики в фактической разработке.Не открывали много ядер виртуальных машин раньше, вызывая такую же трату ресурсов, тогда я сейчас отделю ядро Возьми это и поделиться им со всеми.Поэтому контейнер Linux на самом деле не запускает полную операционную систему, а изолирует разные контейнеры через процессы.В отличие от виртуальных машин, контейнерам не нужно связывать полный набор операционных систем, только ресурсы библиотеки, необходимые для работы программного обеспечения, и настройки. Таким образом, система становится эффективной и легкой, а также гарантирует, что программное обеспечение, развернутое в любой среде, будет работать стабильно.
как показано:
Так как при запуске запускается не вся среда операционной системы, а только среда, необходимая для запуска приложения.Скорость запуска, естественно, намного быстрее, чем у традиционной виртуальной машины, и даже говорится, что ее можно запустить в секунды, при решении проблемы.Проблема растраты ресурсов, а Docker — это проект с открытым исходным кодом, полученный из технологии контейнеров Linux, что упрощает использование разработчиками и снижает порог использования.
Какие проблемы конкретно решает Docker?
Это из давних-давних времен.
Действие происходит в 9012 году, продукте нового поколения бабушки Али, крупнейшей в мире интернет-компании.Бесплатная версия сокровищаНакануне запуска программыУсердно работай, крепко спи, иди на работу, лови рыбу и танцуйПрограммный код, который я написал, был доставлен в эксплуатацию и техническое обслуживание Erdu, я думал, что могу просто передать код Erdu.Лицо весны полно облегчения, но когда А Дай уже собирался начать новую жизнь, Эр Дай остановил его:
Тупой, что с вашим кодом что-то не так, почему я не могу бежать?
Тупой: ВТФ? Я правильно понял, вы на самом деле сказали, что проблема с моим кодом, а, кто-то не разбирается в технологии эксплуатации и обслуживания, как вы смеете говорить моя еда?
Second Stay: Моя технология эксплуатации и обслуживания не очень хороша, моя технология эксплуатации и обслуживания не очень хороша, вы можете это сделать, вы просто шутите, ваш код в порядке, могу ли я его запустить?
Тупой: Не спускай глаз со своего 24-каратного титанового сплава x и посмотри, нормально ли он работает на моем компьютере, потому что твои навыки эксплуатации и обслуживания не очень хороши, хорошо?
Второе пребывание: I &%¥%&,Ваш код не проблема,да?Ваш код не проблема?Давай,если у тебя есть способности,то можешь бегать.Если сможешь бегать,я буду транслировать женскую одежду,вонючий брат.
Тупой: Сегодня я покажу тебе, как я его прекрасно развернул, ты можешь хорошенько на меня взглянуть, понимаешь? !
В это время позвонила девушка А'Дай: А'Дай, разве ты не согласился пойти спать вместе?
Тупой: Уходи, мне сейчас некогда с тобой разговаривать.
Примечание. Все вышеперечисленное относится к программным эффектам, не принимайте их всерьез.
В традиционной разработке такие проблемы несоответствия между средой разработки и производственной средой всегда склонны возникать, и появление Docker, несомненно, значительно упрощает работу инженеров по эксплуатации и обслуживанию и значительно сокращает разрыв между разработкой и эксплуатацией и обслуживанием. вынужденная вероятность. Это все понимают:
Возьмем в качестве примера переезд. Традиционный процесс можно рассматривать как перемещение всей мебели на новое место одну за другой. Если расположение какой мебели четко не запомнить, это может привести к тому, что новый дом выйдет из строя (? ? черт), например, версия mysql не ясна, иДокер очень простой и грубый, способ, который перенимает Докер, это упаковать всю среду за вас, то есть напрямую перенести все здание к вам, и проблема прекрасно решена..
В то же время Docker представляет собой виртуализацию на уровне ядра, которая не требует дополнительной поддержки гипервизора, как традиционные технологии виртуализации, поэтому многие экземпляры контейнера могут быть запущены на физической машине, что может значительно улучшить использование ЦП и памяти физической машины. сервер.
Подводя итог, можно сказать, что докер имеет следующие четыре преимущества:
- Более быстрая доставка и развертывание приложений
- Простое обновление и расширение
- Более простая эксплуатация и обслуживание системы
- Более эффективное использование вычислительных ресурсов
Должна сказать, это действительно вкусно.
Суммировать:
В этой заметке кратко рассказывается об основной ситуации с докером. Я полагаю, что друзья здесь имеют базовое представление о докере, по крайней мере, они знают, что такое докер. Следующая заметка будет посвящена трем элементам докера.Контейнеры образов и репозиторииЭти три концепции развернуты, и вы можете предсказать, что произойдет в будущем.Поставьте лайк и поехали.
Меня зовут Хань Шу, увидимся в следующей заметке «Три элемента Docker: образы, контейнеры и склады».
PS: Дополнительные заметки можно загрузить с моего github (звезды приветствуются):