написать впереди
Чтобы не тратить ваше время, эта статья является моим личным пониманием и кратким изложением Docker. Другими словами, это не связано с реальной битвой с Докером. Так что если вы хотите понять роль Docker в процессе разработки, эта статья может вас разочаровать~
Вот ДокерОфициальный сайтНо, к сожалению, это потребуется через стену.
В этой статье в основном говорится об этих моментах
- Что такое контейнер?
- Контейнеры против виртуальных машин
- Что такое Докер?
- Что может Докер?
текст
Что такое контейнер?
Согласно определению документа Docker: программное обеспечение упаковано в стандартизированный модуль для разработки, доставки и развертывания.
Package Software into Standardized Units for Development, Shipment and Deployment
Я не знаю, как мои друзья понимают это короткое предложение. Если мы сосредоточимся на следующих двух словах:отгрузка,развертывать. На самом деле, это относительно легко понять больше. хотетьотгрузка, которому обязательно нужен носитель, вроде нашего контейнера. хотетьразвертывать, необходимо иметь полную среду, такую как наша Java, которая требует работающей среды.
Эти две концепции объединяются: контейнер — это набор программ и среда, в которой они выполняются. (Если использовать аналогию: если мы сравним нашу обычную систему разработки сЖилойслова; контейнер подобенфургон. независимым и полным).
Технологические изменения наших планов, выглядят более глубокое понимание контейнера:
Я напрямую совмещаю собственное понимание и рисую картину...
Контейнеры против виртуальных машин
На самом деле, упомянутый выше Балабала так много сказал, это и отгрузка, и развертывание. Разве это не просто изоляция, грубо говоря? Виртуальные машины тоже могут!
Это правильно, на самом деле, официальная документация Docker также признает это утверждение. Нет отрицания: контейнер и виртуальная машина имеют аналогичные ресурсы изоляции и преимущества выделения. Контейнеры и виртуальные машины имеют аналогичную изоляцию ресурсов и выделение преимуществ
Но... Официальный сайт жертвует своим убийством:
but function differently because containers virtualize the operating system instead of hardware. Containers are more portable and efficient.
Скажем прямо, техническая реализация контейнера еще более кокетлива: я могу не только изолироваться, но и рысить, и прыгать. Ты сказал, что это раздражает~
Используя приведенную выше аналогию, если традиционная системавиллаЕсли это так, контейнер все ещефургонесли. Тогда виртуальная машинамногоэтажный жилой массивсейчас~
Теперь, когда виртуальные машины упомянуты, давайте поговорим о разнице между контейнерами и виртуальными машинами. На самом деле разницу между ними хорошо видно из официального объяснения Docker:
контейнер:
Контейнер — это абстракция на уровне приложения, которая упаковывает код и зависимости вместе. Несколько контейнеров могут работать на одном компьютере и совместно использовать ядро операционной системы с другими контейнерами, каждый из которых работает как независимый процесс в пользовательском пространстве. Контейнеры занимают меньше места, чем виртуальные машины (образы контейнеров обычно имеют размер в десятки МБ), могут обрабатывать больше приложений и требуют меньшего количества виртуальных машин и операционных систем.
виртуальная машина:
Виртуальная машина (ВМ) — это абстракция физического оборудования, которая превращает один сервер в несколько. Гипервизор позволяет запускать несколько виртуальных машин на одном компьютере. Каждая виртуальная машина содержит полную копию операционной системы, приложений, необходимых бинарников и библиотек, занимая десятки гигабайт. Виртуальные машины также могут медленно запускаться.
Грубо говоря, контейнеры реализованы на базе операционных систем, а виртуальные машины — это простаивающее компьютерное железо. Так что, условно говоря, уровень контейнера ниже. Так что у обоих есть свои достоинства, как говорится на официальном сайте Docker:
Контейнеры и виртуальные машины, используемые вместе, обеспечивают большую гибкость в развертывании приложений и управлении ими. (Контейнеры и виртуальные машины, используемые вместе, обеспечивают большую гибкость при развертывании и управлении приложением.)
Что такое Докер?
Лично я думаю, что картинка выше (отношения между Docker и контейнерами) более четко показывает, что такое Docker ~
Конечно, картинки могут отображаться интуитивно и не могут быть подробно описаны. Далее давайте углубим понятие Docker с помощью слов.
личное понимание: Это не включено отношения между двумя. Но гибридность вместе. Я лично люблю «контейнер», понимается как концепция, но Docker - это способ реализации концепции «контейнера» (Комплексное решение.毕竟人家是一家商业公司,要赚钱哒~肯定是提供一整套服务)。
Согласно представлению официального сайта Docker (внешний zhuangbi):
- Легкий, запускающий на машине множество контейнеров Docker. На машине может быть общее ядро операционной системы, они могут быстро стартовать, просто занимают очень мало памяти и вычислительных ресурсов.
- Стандартные контейнеры Docker основаны на открытых стандартах и могут работать во всех основных дистрибутивах Linux, Microsoft Windows и любой инфраструктуре, включая виртуальные машины, серверы без операционной системы и облака.
- Безопасность, изоляция, которую Docker дает приложениям, не ограничивается изоляцией друг от друга, но также не зависит от базовой инфраструктуры. Docker по умолчанию обеспечивает самую сильную изоляцию, поэтому проблемы с приложениями связаны только с одним контейнером, а не со всей машиной.
Проще говоря, в качестве контейнера Docker может помочь нам изолировать рабочую среду программного обеспечения. Независимая база данных, независимая рабочая среда программного обеспечения, независимый серверный процесс. Все независимо, если один сломается, есть другой, но это реально круто~
Чтобы позаимствовать картинку из Baidu:
Что может Докер?
Фактически, с приведенным выше содержанием относительно ясно, что может сделать Docker. Заимствуем картинку с официального сайта Docker "хвастовство":
- Согласованная среда выполнения. Как разработчики, мы часто обвиняем среду выполнения. Итак, образ Docker предоставляет полную среду выполнения, за исключением ядра. Горшок выбросили.
- Более быстрое время запуска: Docker официально заявляет, что может достигать времени запуска в секундах или даже миллисекундах.
- Изоляция: Излишне говорить...
- Эластичное масштабирование, быстрое расширение: не знаю, правда это или нет
- Миграция удобна: правда, с JVM ее можно легко запустить на платформе, чтобы мигрировать на другую платформу.
- Непрерывная доставка и развертывание. Используя Docker, вы можете обеспечить непрерывную интеграцию, непрерывную доставку и развертывание путем настройки образов приложений.
Docker может делать эти вещи, в основном полагаясь на три его содержимого: образ (Docker Image), контейнер (Docker Containers), хранилище (Docker Registry).
три понятия
Образ (образ Docker)
Образ — это шаблон для создания контейнера, доступный только для чтения, и он содержит всю информацию, необходимую для запуска контейнера, включая средства выполнения и данные конфигурации.
Контейнеры (контейнеры Docker)
Вектор, по которому фактически работает среда разработки.
Репозиторий (Docker Registru)
Место для хранения изображений.
Суммировать
личное понимание,зеркаломожно понимать какКласс (Класс), который содержит абстрактную структуру объекта. иконтейнерЭто объект, который мы действительно новы, который мы можем использовать.
Больше контента, вы можете переместитьОфициальные документы, вам нужно опрокинуть стену
конец
Приведенный выше контент — это мое собственное понимание Docker с момента моей работы. Если есть что-то неуместное, надеюсь, вы меня покритикуете и поправите~
Вот свежие выпускные / ранние программисты общедоступные добро пожаловать onlookers ~ ~ Нет.
I am a freshman. Recently, I have maintained a public number with my friends. The content is our pit that we stepped through the freshman to the development of this road. If you are interested, if you are interested, you can pay attention , Ну давай же!