Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   Нужны ли действительно контейнеры Docker на Windows ? (http://forum.oszone.net/showthread.php?t=346164)

__sa__nya 16-08-2020 09:53 2931356

Нужны ли действительно контейнеры Docker на Windows ?
 
Доброе время суток. Решил поизучать технологию контейнеров для 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 16-08-2020 12:16 2931368

Цитата:

Цитата __sa__nya
Так же можно упаковать приложение в контейнер »

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

Цитата:

Цитата __sa__nya
расположить нужные мне контейнеры в заданных расположениях »

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

Цитата:

Цитата __sa__nya
ввожу docker attach ID_контейнера - и ничего не происходит минут 20. Почему не происходит подключение к уже запущенному контейнеру - непонятно. »

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

Цитата:

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

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

Цитата:

Цитата __sa__nya
я не нашел контейнера с графической оболочкой »

зачем?
нет таких контейнеров

Цитата:

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

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

Цитата:

Цитата __sa__nya
что перевешивает все его видимые мной минусы »

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

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

__sa__nya 17-08-2020 07:56 2931441

Цитата:

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

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

Цитата:

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

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

Цитата:

Цитата Busla
зачем?
нет таких контейнеров »

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

Цитата:

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

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


- Busla, вопросы к вам:
1. Как давно вы используете Docker в Windows-среде
2. Сколько экземпляров контейнеров вы используете постоянно ( в явно запущенном виде) ?

__sa__nya 17-08-2020 08:28 2931444

У кого еще какое мнение и опыт с Docker-контейнерами ?

Busla 17-08-2020 13:11 2931452

Цитата:

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

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

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

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

Цитата:

Цитата __sa__nya
В Hyper-v все можно посмотреть в Hyper-V Manager.»

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

Цитата:

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

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

Цитата:

Цитата __sa__nya
А если я явно запущу командой run ( не start) 3 раза контейнер, почему в списке вместо трех контейнеров вижу 10 ? »

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

Цитата:

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

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

Цитата:

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

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

Charg 17-08-2020 16:14 2931460

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

Цитата:

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

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

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

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

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

DJ Mogarych 17-08-2020 22:02 2931487

Цитата:

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

https://www.portainer.io/

__sa__nya 18-08-2020 06:33 2931510

Цитата:

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

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


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

Busla 18-08-2020 10:44 2931533

__sa__nya, что такое "Docker приложения"?

птичка0001 01-09-2020 17:37 2932655

Цитата:

Цитата __sa__nya
Docker приложения

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


Время: 05:41.

Время: 05:41.
© OSzone.net 2001-