Нужны ли действительно контейнеры Docker на Windows ?
-
__sa__nya
Нужны ли действительно контейнеры 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 ?
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 ?
Цитата __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; установить само приложение, настроить его. Причём установка и настройка у каждого приложения происходит по-своему.
Так же можно упаковать приложение в контейнер
Нужны ли действительно контейнеры 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 ?
Цитата 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. Сколько экземпляров контейнеров вы используете постоянно ( в явно запущенном виде) ?
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 ?
У кого еще какое мнение и опыт с Docker-контейнерами ?
-
Busla
Re: Нужны ли действительно контейнеры Docker на Windows ?
Цитата __sa__nya:
если запущено, например 10 контейнеров с SQL Server'ом, в котором предполагается подключить базы, то эту нагрузку необходимо распределить по разным дискам/RAID-массивам вместо одного.
теперь, понятно, о чём вы - это параметр --mount есть ещё близкий по смыслу --volume, но
В первую очередь это делается, чтобы при обновлении/замене контейнера не потерять данные внутри него. Как правило в полноценных учебных курсах этому уделяется специальное внимание. Попробуйте почитать книгу или посмотреть видеокурс. Методом тыка вы далеко не уедете.
В целом, запихивание БД в контейнер - сомнительный ход, больше подходящий для 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 не существовал даже в планах.
А то умопомрачительное количество контейнеров, что крутится на серверах организации - естественно не моя личная заслуга.
если запущено, например 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 ?
А что, докер как windows feature есть? Прикольно, надо будет поковырять...
Цитата __sa__nya:
Что в нем есть такого, что перевешивает все его видимые мной минусы, и действительно делает нужным его применение вместо виртуальных машин на том же Hyper V 2019 ?
В этой теме всё сводится к вот этому вопросу, а точнее к предубеждениями из-за которых он возник. Предубеждение в том что есть вот контейнеры а есть виртуалки. У контейнеров свои плюсы-минусы, у виртуалок другие. Так вот - контейнеризация это НЕ замена и не конкурент виртуализации. Это разные инструменты применяемые для разных задач.
Докер Контейнеризация нужна для воспроизводимости - чтобы гарантировать что приложение всегда будет работать одинаково, как уже было упомянуто выше. Старый классический способ "дать" своё приложение своим клиентам или там коллегам в другой отдел состоял в том что вот тебе ехе-шник установщика, вот тебе мануал как настраивать софт, а ещё вот этот дополнительный софт установи чтоб моё приложение работало, всё это заворачиваем в архив и видаем админу, пусть разбирается.
В противовес этого сейчас даётся контейнер, внутри которого уже всё настроено, просто запускаешь и работает.
И, основным плюсом является то что оно работает гарантированно точно так же как и у всех других использующих тот же контейнер. Это значит что если в контейнере ошибка - у того мейнтейнера тоже есть эта ошибка. И он её найдёт и пофиксит. Больше не нужно никаких танцов с бубном типа а вот тут настрйоки проверь. А точно вот эта служба запущена? А вот в эту папку есть права на запись а то я забыл в мануале уточнить и прочее.
Вообще это инструмент, преимущества которого очевидны, во-первых, разработчикам (и смежным областям), при чем в больших объемах. Когда у тебя грубо говоря 3 виртуалки с серверной ОС и 10 приложений, который ты сам себе настраиваешь и пользуешься - оно и не нужно. А когда серверов десятки тысяч - уже совсем другое дело.
Цитата __sa__nya:
Что в нем есть такого, что перевешивает все его видимые мной минусы, и действительно делает нужным его применение вместо виртуальных машин на том же Hyper V 2019 ?
Нужны ли действительно контейнеры Docker на Windows ?
В этой теме всё сводится к вот этому вопросу, а точнее к предубеждениями из-за которых он возник. Предубеждение в том что есть вот контейнеры а есть виртуалки. У контейнеров свои плюсы-минусы, у виртуалок другие. Так вот - контейнеризация это НЕ замена и не конкурент виртуализации. Это разные инструменты применяемые для разных задач.
Докер Контейнеризация нужна для воспроизводимости - чтобы гарантировать что приложение всегда будет работать одинаково, как уже было упомянуто выше. Старый классический способ "дать" своё приложение своим клиентам или там коллегам в другой отдел состоял в том что вот тебе ехе-шник установщика, вот тебе мануал как настраивать софт, а ещё вот этот дополнительный софт установи чтоб моё приложение работало, всё это заворачиваем в архив и видаем админу, пусть разбирается.
В противовес этого сейчас даётся контейнер, внутри которого уже всё настроено, просто запускаешь и работает.
И, основным плюсом является то что оно работает гарантированно точно так же как и у всех других использующих тот же контейнер. Это значит что если в контейнере ошибка - у того мейнтейнера тоже есть эта ошибка. И он её найдёт и пофиксит. Больше не нужно никаких танцов с бубном типа а вот тут настрйоки проверь. А точно вот эта служба запущена? А вот в эту папку есть права на запись а то я забыл в мануале уточнить и прочее.
Вообще это инструмент, преимущества которого очевидны, во-первых, разработчикам (и смежным областям), при чем в больших объемах. Когда у тебя грубо говоря 3 виртуалки с серверной ОС и 10 приложений, который ты сам себе настраиваешь и пользуешься - оно и не нужно. А когда серверов десятки тысяч - уже совсем другое дело.
-
DJ Mogarych
Re: Нужны ли действительно контейнеры Docker на Windows ?
Цитата __sa__nya:
В Docker'e подобных инструментов, именно графических ( т.к. в графических инструментах данные читать гораздо удобнее) не нашел.
В Docker'e подобных инструментов, именно графических ( т.к. в графических инструментах данные читать гораздо удобнее) не нашел.
Нужны ли действительно контейнеры Docker на Windows ?
https://www.portainer.io/
-
__sa__nya
Re: Нужны ли действительно контейнеры Docker на Windows ?
Цитата Charg:
А что, докер как windows feature есть? Прикольно, надо будет поковырять...
- Как компонента Windows - нет. Docker ставится командами powershell из одного из доступных репозиториев. Это именно для Windows Server. Для настольных Windows- систем - есть Docker Desktop.
Дополню свой изначальный вопрос еще одним: какие самые популярные Docker приложения на вашей практике ?
А что, докер как windows feature есть? Прикольно, надо будет поковырять...
Нужны ли действительно контейнеры Docker на Windows ?
- Как компонента Windows - нет. Docker ставится командами powershell из одного из доступных репозиториев. Это именно для Windows Server. Для настольных Windows- систем - есть Docker Desktop.
Дополню свой изначальный вопрос еще одним: какие самые популярные Docker приложения на вашей практике ?
-
Busla
-
Busla
Re: Нужны ли действительно контейнеры Docker на Windows ?
Цитата __sa__nya:
Docker приложения
Вы случаем не имеете в виду следующее: приложение docker - это запускаемая команда и далее по тексту?
Docker приложения
Вы случаем не имеете в виду следующее: приложение docker - это запускаемая команда и далее по тексту?