Нужны ли действительно контейнеры Docker на Windows ?

Ответить
Аватара пользователя
__sa__nya

Нужны ли действительно контейнеры Docker на Windows ?

Сообщение __sa__nya »

Доброе время суток. Решил поизучать технологию контейнеров для Docker, для Windows. В частности все эксперименты ставлю на Windows Server 2016 Std. И у меня в голове возникает 1 вопрос, на который я не могу найти аргументированные ответы: "А нафига вообще нужен этот Docker ?". Конечно, если почитать теорию ( что я делал перед заданием вопроса), то вроде все просто: "Как это зачем ? Docker существенно экономит ресурсы, т.к. по сравнению со средствами виртуализации, здесь VM полностью не стартует. Так же можно упаковать приложение в контейнер, его проще развернуть, запустить и т.д.". Это все я читал в теории, что я получил на практике:

1. Неудобство управления контейнерами. А именно:

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

- неудобство запуска и подключения к контейнерам. Я ввожу docker attach ID_контейнера - и ничего не происходит минут 20. Почему не происходит подключение к уже запущенному контейнеру - непонятно. Нагрузки на компьютерв этот момент нет.

2. Неудобство просмотра ресурсов, которые используют контейнеры: диск, память и т.д.

3. Неудобство работы с контейнерами:

- я не нашел контейнера с графической оболочкой. Да и в принципе не нашел ответа на вопрос, есть ли контейнеры с графической оболочкой или нет

- 1 и тот же контейнер дублируется - т.е. вводишь docker ps -a и видишь для 1 предполагаемого контейнера несколько разных



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

Мой вопрос адресуется к Windows-админам, успешно применяющих Docker в своей среде/работе. Что в нем есть такого, что перевешивает все его видимые мной минусы, и действительно делает нужным его применение вместо виртуальных машин на том же Hyper V 2019 ?
Аватара пользователя
Busla

Re: Нужны ли действительно контейнеры Docker на Windows ?

Сообщение Busla »

Цитата __sa__nya:



Так же можно упаковать приложение в контейнер
Нужны ли действительно контейнеры Docker на Windows ?




не "можно упаковать", а это основное назначение - доставка приложения вместе с настроенным окружением




Цитата __sa__nya:



расположить нужные мне контейнеры в заданных расположениях
Нужны ли действительно контейнеры Docker на Windows ?




1) зачем?

2) это не имеет смысла, т.к. контейнеры многослойные; как правило, самые тяжёлые нижние слои у них будут общие




Цитата __sa__nya:



ввожу docker attach ID_контейнера - и ничего не происходит минут 20. Почему не происходит подключение к уже запущенному контейнеру - непонятно.
Нужны ли действительно контейнеры Docker на Windows ?




либо контейнер кривой, либо вы что-то не то делаете




Цитата __sa__nya:



Неудобство просмотра ресурсов, которые используют контейнеры: диск, память и т.д.
Нужны ли действительно контейнеры Docker на Windows ?




потребление ресурсов смотрят в системе мониторинга




Цитата __sa__nya:



я не нашел контейнера с графической оболочкой
Нужны ли действительно контейнеры Docker на Windows ?




зачем?

нет таких контейнеров




Цитата __sa__nya:



1 и тот же контейнер дублируется - т.е. вводишь docker ps -a и видишь для 1 предполагаемого контейнера несколько разных
Нужны ли действительно контейнеры Docker на Windows ?




намекаю: вы точно так же можете в Windows запустить несколько Блокнотов - это тоже баг?




Цитата __sa__nya:



что перевешивает все его видимые мной минусы
Нужны ли действительно контейнеры Docker на Windows ?




просто ваши "минусы" - не минусы



Контейнеры - это средство доставки приложения. Внутренний или внешний разработчик готовит контейнер с приложением. Для запуска такого подготовленного приложения нужно только указать базовые параметры типа сетевого порта и места для хранения данных. В случае поставки приложения в виде традиционного дистрибутива нужно становить ОС; какие-то библиотеки типа Visual C redistributable, драйвер ODBC; установить само приложение, настроить его. Причём установка и настройка у каждого приложения происходит по-своему.
Аватара пользователя
__sa__nya

Re: Нужны ли действительно контейнеры Docker на Windows ?

Сообщение __sa__nya »

Цитата Busla:



1) зачем?

2) это не имеет смысла, т.к. контейнеры многослойные; как правило, самые тяжёлые нижние слои у них будут общие
Нужны ли действительно контейнеры Docker на Windows ?




- Затем, что если запущено, например 10 контейнеров с SQL Server'ом, в котором предполагается подключить базы, то эту нагрузку необходимо распределить по разным дискам/RAID-массивам вместо одного.




Цитата Busla:



потребление ресурсов смотрят в системе мониторинга
Нужны ли действительно контейнеры Docker на Windows ?




Я сравниваю удобство Docker c Hyper-V. В Hyper-v все можно посмотреть в Hyper-V Manager. В Docker'e подобных инструментов, именно графических ( т.к. в графических инструментах данные читать гораздо удобнее) не нашел.




Цитата Busla:



зачем?

нет таких контейнеров
Нужны ли действительно контейнеры Docker на Windows ?




Затем что приложения бывают еще и графические, для работы которых нужен GUI-интерфейс. И мне нужно было понимать подходит ли Docker для графических приложений или нет. Получается что Docker не для графики.




Цитата Busla:



намекаю: вы точно так же можете в Windows запустить несколько Блокнотов - это тоже баг?
Нужны ли действительно контейнеры Docker на Windows ?




- Ну ОК, раз мы любим троллить, покажу наглядно что имею ввиду. Если я явно запущу несколько блокнотов - это конечно не баг. А если я явно запущу командой run ( не start) 3 раза контейнер, почему в списке вместо трех контейнеров вижу 10 ? Вот здесь можно намекнуть либо на баг, либо на очень странную логику работы, какую-то нелогичную:





- Busla, вопросы к вам:

1. Как давно вы используете Docker в Windows-среде

2. Сколько экземпляров контейнеров вы используете постоянно ( в явно запущенном виде) ?
Аватара пользователя
__sa__nya

Re: Нужны ли действительно контейнеры Docker на Windows ?

Сообщение __sa__nya »

У кого еще какое мнение и опыт с Docker-контейнерами ?
Аватара пользователя
Busla

Re: Нужны ли действительно контейнеры Docker на Windows ?

Сообщение Busla »

Цитата __sa__nya:



если запущено, например 10 контейнеров с SQL Server'ом, в котором предполагается подключить базы, то эту нагрузку необходимо распределить по разным дискам/RAID-массивам вместо одного.
Нужны ли действительно контейнеры Docker на Windows ?




теперь, понятно, о чём вы - это параметр --mount есть ещё близкий по смыслу --volume, но
официальная позиция
: "New users should use the --mount syntax."



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



В целом, запихивание БД в контейнер - сомнительный ход, больше подходящий для dev-окружения. Контейнеры больше про вычисления, а хранение данных для них - внешний сервис.




Цитата __sa__nya:



В Hyper-v все можно посмотреть в Hyper-V Manager.
Нужны ли действительно контейнеры Docker на Windows ?




на счёт "всё" мне как-то сомнительно, но "управлялка" для контейнеров есть в Windows Admin Center. Но по-хорошему контейнеры нужно заводить в общую систему мониторинга.




Цитата __sa__nya:



Затем что приложения бывают еще и графические, для работы которых нужен GUI-интерфейс. И мне нужно было понимать подходит ли Docker для графических приложений или нет.
Нужны ли действительно контейнеры Docker на Windows ?




Docker в первую очередь серверная технология и не подходит для графических приложений. Для разработчиков создающих серверные приложения с графическим интерфейсом приготовлен отдельный котёл в аду.




Цитата __sa__nya:



А если я явно запущу командой run ( не start) 3 раза контейнер, почему в списке вместо трех контейнеров вижу 10 ?
Нужны ли действительно контейнеры Docker на Windows ?




лучше было бы листинг вставить текстом

Смотрите столбик CREATED, контейнер вы запустили два раза, а не три. А всё остальное вы создали ещё неделю тому назад.




Цитата __sa__nya:



Как давно вы используете Docker в Windows-среде
Нужны ли действительно контейнеры Docker на Windows ?




видимо, начиная с релиза Docker for Windows

а какая разница, запущена в контейнере linux-версия 1с или windows-версия 1с? - что интерфейс, что результат - практически идентичный




Цитата __sa__nya:



Сколько экземпляров контейнеров вы используете постоянно ( в явно запущенном виде)
Нужны ли действительно контейнеры Docker на Windows ?




Понимаю ваш ехидный вопрос. Единственным айтишником на организацию я последний раз был когда Docker не существовал даже в планах.

А то умопомрачительное количество контейнеров, что крутится на серверах организации - естественно не моя личная заслуга.
Аватара пользователя
Charg

Re: Нужны ли действительно контейнеры Docker на Windows ?

Сообщение Charg »

А что, докер как windows feature есть? Прикольно, надо будет поковырять...




Цитата __sa__nya:



Что в нем есть такого, что перевешивает все его видимые мной минусы, и действительно делает нужным его применение вместо виртуальных машин на том же Hyper V 2019 ?
Нужны ли действительно контейнеры Docker на Windows ?




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



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



В противовес этого сейчас даётся контейнер, внутри которого уже всё настроено, просто запускаешь и работает.

И, основным плюсом является то что оно работает гарантированно точно так же как и у всех других использующих тот же контейнер. Это значит что если в контейнере ошибка - у того мейнтейнера тоже есть эта ошибка. И он её найдёт и пофиксит. Больше не нужно никаких танцов с бубном типа а вот тут настрйоки проверь. А точно вот эта служба запущена? А вот в эту папку есть права на запись а то я забыл в мануале уточнить и прочее.



Вообще это инструмент, преимущества которого очевидны, во-первых, разработчикам (и смежным областям), при чем в больших объемах. Когда у тебя грубо говоря 3 виртуалки с серверной ОС и 10 приложений, который ты сам себе настраиваешь и пользуешься - оно и не нужно. А когда серверов десятки тысяч - уже совсем другое дело.
Аватара пользователя
DJ Mogarych

Re: Нужны ли действительно контейнеры Docker на Windows ?

Сообщение DJ Mogarych »

Цитата __sa__nya:



В Docker'e подобных инструментов, именно графических ( т.к. в графических инструментах данные читать гораздо удобнее) не нашел.
Нужны ли действительно контейнеры Docker на Windows ?




https://www.portainer.io/
Аватара пользователя
__sa__nya

Re: Нужны ли действительно контейнеры Docker на Windows ?

Сообщение __sa__nya »

Цитата Charg:



А что, докер как windows feature есть? Прикольно, надо будет поковырять...
Нужны ли действительно контейнеры Docker на Windows ?




- Как компонента Windows - нет. Docker ставится командами powershell из одного из доступных репозиториев. Это именно для Windows Server. Для настольных Windows- систем - есть Docker Desktop.





Дополню свой изначальный вопрос еще одним: какие самые популярные Docker приложения на вашей практике ?
Аватара пользователя
Busla

Re: Нужны ли действительно контейнеры Docker на Windows ?

Сообщение Busla »

Цитата __sa__nya:



Docker приложения



Вы случаем не имеете в виду следующее: приложение docker - это запускаемая команда и далее по тексту?
Ответить

Вернуться в «Хочу все знать»