Начало работы с Докером в 2021 году

docker

В течение последних нескольких лет Docker нарушает разработку и DevOps месторождений. Многие люди думают, что Docker — это язык программирования или фреймворк. Это не так. Докер — это платформа с открытым исходным кодом для создания, транспортировки и запуска контейнеров.

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

Контейнеры

По словам Докер, «Контейнеры — это стандартизированная единица программного обеспечения, позволяющая разработчикам изолировать свои приложения от окружающей среды». Используя контейнер, вам больше не нужно беспокоиться о зависимостях вашего приложения, сталкивающегося друг с другом. Каждая зависимость, необходимая приложению, может быть установлена и изолирована в контейнере. Также, мы можем гарантировать, что приложение, работающее в одном контейнере, может работать и в других.

Преимущества использования контейнера


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


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

Избежать конфликтов зависимости


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


Например, вы хотите установить ПО А и ПО Б. ПО А требует, чтобы на вашем компьютере был установлен Python 2.1, в то время как ПО Б требует Python 2.3. Когда вы устанавливаете программное обеспечение A, оно работает идеально. Но после того, как Вы установили ПО Б, Ваш ПК заменяет Python 2.1 на версию 2.3. Поскольку некоторые функции Python 2.3 и 2.1 отличаются, программное обеспечение A может больше не работать. Такие вещи часто случаются и на производственном сервере.

Чтобы всё работало идеально, вам придётся работать вокруг конфликта зависимостей.


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

Ограничение повреждения вируса


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

About the Author: Lazizbek Ergashev

2 комментария

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *