Подтвердить что ты не робот

Докер, что это такое и какова цель

Я слышал о Докере несколько дней назад и хотел перейти.

Но на самом деле, я не знаю, какова цель этого "контейнера"?

Что такое контейнер?

Может ли он заменить виртуальную машину, предназначенную для разработки?

Какова цель использования Docker в компаниях? Основное преимущество?

4b9b3361

Ответ 1

VM Machine: с помощью программного обеспечения VM Machine, например, Ubuntu можно установить внутри Windows. И они оба будут бежать одновременно. Это похоже на сборку ПК с его основными компонентами, такими как ЦП, ОЗУ, диски, сетевые карты и т.д., Внутри операционной системы и сборка их для работы, как будто это настоящий ПК. Таким образом, виртуальный ПК становится "гостем" внутри реального ПК с операционной системой, которая называется хостом.

Контейнер: он такой же, как и выше, но вместо использования всей операционной системы он сокращает "ненужные" компоненты виртуальной ОС, чтобы создать ее минимальную версию. Это привело к созданию LXC (Linux Containers). Это быстрее, чем VM Machines.

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

(Обратите внимание, что в случае Docker гостевая ОС не требуется)

Ответ 2

Докер:

Что такое докер?

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

Начальная версия: март 2013 г.

В основном использовать на гибком проекте.

Ссылка

Почему докер?

  • Docker имеет возможность уменьшить размер разработки, предоставляя меньший размер операционной системы через контейнеры.
  • С контейнерами становится легче для команд разных подразделений, таких как разработка, QA и Operations для беспрепятственной работы приложения.
  • Вы можете развернуть контейнеры Docker в любом месте, на любом физическом и виртуальные машины и даже на облаке.
  • Поскольку контейнеры Docker довольно легкие, они очень легко масштабируемым.

Подробнее: почему докер

Условия:

Docker Engine: "Docker engine" - это часть Docker, которая создает и запускает контейнеры Docker.

Docker Hub: SaaS-служба для совместного использования и управления стеками приложений.

(Docker Hub - это служба реестра в облаке, которая позволяет загружать изображения Docker, созданные другими сообществами. Вы также можете загружать свои собственные файлы Docker в центр Docker)

Docker Compose: Docker Compose - это инструмент для определения и запуска многоконтейнерных приложений Docker. Он использует файлы Yaml для настройки служб приложений и выполняет процесс создания и запуска всех контейнеров с помощью одной команды.

Использование Compose - это в основном трехэтапный процесс.

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

Для получения дополнительной информации: Docker comp

Изображение Docker: В Docker все основано на изображениях.

Файл докеров: Файл Docker по существу является инструкцией по сборке для создания изображения.

Подробнее: Файл докеров

Docker-compose.yml: Конфигурация. Службы приложений.

Ответ 3

[Обратите внимание, что этот ответ посвящен контейнерам Linux и может не полностью применяться к другим операционным системам. ]

Что такое контейнер?

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

Они используют пространства имен ядер. Каждый контейнер по умолчанию получает среду, в которой следующие пространства имен:

  • Mount: файловые системы, / в контейнере будут отличаться от / на хосте.
  • PID: идентификатор процесса, pid 1 в контейнере - это запущенное приложение, этот pid будет отличаться при просмотре с хоста.
  • Сеть: контейнеры запускаются со своим собственным интерфейсом loopback (127.0.0.1) и частным IP по умолчанию. Docker использует такие технологии, как сети моста Linux, чтобы подключать несколько контейнеров вместе в своем собственном частном компьютере.
  • IPC: межпроцессная связь
  • UTS: это включает имя хоста
  • Пользователь: вы можете поменять весь идентификатор пользователя на смещение с идентификатором хоста

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

И другие средства обеспечения безопасности Linux. Контейнеры также используют другие функции безопасности, такие как SELinux, AppArmor, Capabilities и Seccomp, чтобы ограничить пользователей внутри контейнера, включая пользователя root, от возможности избежать контейнера или негативно воздействовать на хост.

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

Можно ли заменить виртуальную машину, предназначенную для разработки?

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

Какова цель, простыми словами, использования Docker в компаниях? Главное преимущество?

Dev или Ops: Докер обычно запускается в среду на одном из двух путей. Разработчики ищут способ более быстрого развития и локального тестирования своего приложения, а также операции, направленные на увеличение рабочей нагрузки на меньшее количество аппаратных средств, чем это возможно с виртуальными машинами.

или Devops. Одной из идеальных целей является использование Docker сразу из инструмента развертывания CI/CD, компиляция приложения и немедленное создание образа, который развертывается для разработки, CI, prod и т.д. Контейнеры часто сокращают время, чтобы перенести приложение из проверки кода до тех пор, пока он не будет доступен для тестирования, что сделает разработчики более эффективными. И при правильном проектировании в производстве может быть развернут тот же образ, который был протестирован и одобрен разработчиками и инструментами CI. Поскольку это изображение включает все зависимости приложения, риск чего-то взлома в производстве, который работал в разработке, значительно сокращается.

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

Ответ 4

На сайте docker.io есть много хорошей документации, вам обязательно нужно потратить некоторое время здесь.

Для вашего вопроса "что такое контейнер", посмотрите на отношение Докера к виртуальным машинам и LXC и Докерные отношения для виртуальных машин и LXC

Для вашего вопроса "Может ли он заменить виртуальную машину, предназначенную для разработки?", это зависит, но если вы используете Eclipse, вы должны взглянуть на https://registry.hub.docker.com/search?q=eclipse&searchfield= и http://www.slideshare.net/jpetazzo/docker-and-containers-for-development-and-deployment-scale12x и, конечно же, на сайте докеров http://docs.docker.com/contributing/devenvironment/

Ответ 5

Позвольте мне попытаться дать как можно более простые ответы:

Но на самом деле, я не знаю, какова цель этого "контейнера"?

Что такое контейнер?

Проще говоря: пакет, содержащий программное обеспечение. В частности, приложение и все его зависимости связаны друг с другом. Обычная, не докеризованная прикладная среда подключается непосредственно к ОС, тогда как контейнер Docker является уровнем абстракции ОС.

И контейнер отличается от изображения тем, что контейнер является экземпляром образа во время выполнения - подобно тому, как объекты являются экземплярами классов во время выполнения, если вы знакомы с ООП.

Может ли он заменить виртуальную машину, предназначенную для разработки?

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

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

Какова цель использования Docker в компаниях? Основное преимущество?

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

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

Некоторые общие преимущества их использования:

  • Отличная изоляция услуг
  • Отличная управляемость, так как контейнеры содержат все, что нужно приложению
  • Инкапсуляция технологии реализации (в контейнерах)
  • Эффективное использование ресурсов (благодаря облегченной виртуализации ОС) по сравнению с виртуальными машинами
  • Быстрое развертывание

Ответ 6

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

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

Докер доступен для Windows, Linux MacOS.

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

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

Смотрите подробности здесь https://www.devopsrider.com/2019/05/what-is-docker-why-it-is-useful-in.html