Что такое Docker

109
20 апреля 2022, 03:20

Что такое докер и для чего он нужен? Во всех статьях про докер встречаются термины "имейдж" и "контейнер", что эти термины означают?

UPDATE В скриншоте ниже я подключился получается к какому-то контейнеру? Я сейчас нахожусь в том контейнере? Как мне из него выйти? И можно ли выйти не останавливая его и как потом обратно туда попасть?

Answer 1

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

Зачем все это нужно. Вспомнить классическую ситуацию - программист написал софт и говорит "у меня на ноуте работает". А админы (сисопсы/девопсы) не могут развернуть на прод сервере и заставить работать, так как нет хорошего описания как это сделать. И на это обычно говорят так - давай твой ноут поставим в стойку.

А вот если программист предоставил докер файл... то все сильно упрощается.

Также докер предоставляет "из коробки" всякие разные вкусности. Например, можно приложению выделить определенные ресурсы процессора/памяти, открыть порты, поставить специфическую версию какой-то библиотеки - программисты любят говорить, что их софт работает только с ограниченным набором версий библиотек.

Также можно переносить запущенные в докере приложения с машины на машину без особых проблем.

Что такое имедж - это подготовленный кем-то набор файлов, готовый к использованию в докере. Это может быть целый линукс, а может быть специально собранный питон, который можно "наложить" на нужный образ линукса. То есть, если админу нужно обновить ядро, он берет нужный имедж с ядном, добавляет уже готовый имедж с программами и вуаля, все работает (если только не испортили совместимость).

контейнер - а это уже готовый к употреблению продукт. Его можно запустить/остановить. (А вот образ не запустишь, его нужно поместить для начала в контейнер).

На самом деле, докер - это не вируталка, это инструмент управления различными средствами виртуализациями. А управляет он к примеру lxc (linux container) - почти встроенное ядро средство виртуализации).

UPD

виртуалка - как virtual box или vmware. Но теже "виртуалные сервера" можно сделать на базе докера.

изолированное окружение - это возможность сделать так, что приложение будет думать, что оно работает на сервере само. Допустим, хочется запустить десять веб серверов, а у них у всех прибит 80 порт и изменить нельзя. А докер позволит их всех запустить, каждый в своем контейнере, а наружу выпустит под разными портами. А ещё в одном докере запустить балансер, который будет с 80 порта разбрасывать запросы. А ещё к этому можно прикрутить docker-composer, который может управлять пачкой докер контейнеров.

А вот винду - да, пока не запустить в докере, но это дело наживное. Если майкрософт захочет, то сделать образ и тогда все будет буквально в пару кликов (ой, не кликов, а строк в докер файлов). Более того, поговаривают, что Майкрософт к этому готовиться - выпустили виндовс сервер без gui, интегрируют линукс внутрь... посмотрим.

READ ALSO
Блокировка при парсинге Bitrix PHP

Блокировка при парсинге Bitrix PHP

Пишу парсер для проекта, если коротко, то он собирает лист товаров с сайта на Bitrix, а после выводит нужную информацию

227
Как сделать возможность клиентам подключить свой домен к моему сервису

Как сделать возможность клиентам подключить свой домен к моему сервису

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

111
Как применить анимацию притяжения/отталкивания частиц?

Как применить анимацию притяжения/отталкивания частиц?

Ребята, приветствуюПодскажите пожалуйста кто на практике сталкивался с похожей задачей ? необходимо реализовать анимацию притяжения/отталкивания...

262