На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
  
> DockerContainer vs остальное , Обсуждение систем виртуализации, конфигурирования и развертывания приложений
    Всем привет.

    Читаю тут статью на хабре про докер контейнеры: https://habr.com/ru/post/353238/
    В комментах пишут, что конкретно технология вроде как свежая, а вот реализации все некудышные и одной ногой в могиле.

    А у меня как раз стоит задача наименее болезненным способом развернуть Asp .NET Core приложение, которое работает под Win, на Linux.
    До этого я сталкивался с докер контейнерами в IBM Qradar, на пользовательском уровне. И мне сама идея очень понравилась. Не нужно тебе ничего настраивать, конфигурить, с бубнами танцевать на каждой отдельной ОС, чтоб все настроить. Тут все просто - развернул, и забыл. Надоело - удалил и забыл.

    Так вот я и думал как раз юзнуть эту технологию. Но пока полный нубас в этом. Сижу читаю мануалы, скачиваю докер отсюда -> https://docs.docker.com/docker-for-windows/...ows-desktop-app

    Так вот хотелось бы узнать какие реализации докеров лучше, каких хуже, может быть это оцтойная технология, и есть в 100500 раз лучше? Может быть autoconf будет лучше? Или еще что то?

    В общем хотелось бы найти хороший инструмент для развертывания .NET Core приложений на базе *nix систем, ну и услышать плюсы и минусы этих инструментов.
      Цитата Wound @
      А у меня как раз стоит задача наименее болезненным способом развернуть Asp .NET Core приложение, которое работает под Win, на Linux.

      Для тебя даже инструкцию написали :D https://habr.com/ru/company/microsoft/blog/278173/
        Цитата Астарот @
        Для тебя даже инструкцию написали https://habr.com/ru/company/microsoft/blog/278173/

        Да я это видел про ASP Net Core Doker тут -https://hub.docker.com/r/microsoft/aspnetcore/
        За эту ссылку спасибо.
        Просто меня смутили комменты по первой ссылке, мол де докер одной ногой в могиле и т.п. Вот и хотелось бы узнать подробнее все плюсы, минусы, альтернативы. Не хотелось бы тратить много времени на что то, что потом придется переделывать.
          Концептуально идею докера понимаю, но не могу понять, будут ли дублироваться в каждом контейнере shared-либы? Пример: в одном контейнере ставим Апач с поддержкой SSL, во втором PostgreSQL с поддержкой SSL. Получится две копии OpenSSL, или как-то иначе?
            Цитата JoeUser @
            Концептуально идею докера понимаю, но не могу понять, будут ли дублироваться в каждом контейнере shared-либы? Пример: в одном контейнере ставим Апач с поддержкой SSL, во втором PostgreSQL с поддержкой SSL. Получится две копии OpenSSL, или как-то иначе?

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

            Добавлено
            Т.е. в твоем случае получится 2 контейнера, в одном стоит Apache с поддержкой SSL, во втором PostgreSQL с поддержкой SSL. И пока они вообще никак не взаимосвязаны, ну если ты сам не настроишь между ними коммуникацию. Например через вебсервисы или еще как то.

            Добавлено
            Т.е. по сути докер контейнер - это изолированная от внешнего мира среда, со своими библиотеками и прогами, которые ты в нее установишь.
              Wound
              Докер использует не самую лучшую виртуализацию. Есть Xen который умеет взаимодействовать с IBM tool bar или как-то так. Плюс xen то что он делает виртуальным сетевую карту, у каждого контейнера свой стек TCP/IP.
              А вот у докера один стек, поэтому на все виртуалки ограниченно число одновременный соединений 65536. Виртуализацаия IP и там и там.
              Поэтому для меня эти недостатки вообще не существенны.

              В данном случае я докер рассматриваю как паровоз который таки вытянет LCX.
              Фишка докера это интеграция с git. Что даёт возможность непрерывного обновления для билд серверов. Хотя скрипты автотестирования сборки писать придётся.


              Хочу сказать что Docker для windows реализ toolbox будет работать только на win 7.
              А вот реализ desktop-app будет работать только на win 10 pro
              В этом плане у них вроде и хорошо стараются делать, но ресурсво на полную поддержку не хватает.


              JoeUser
              Будет 2 копии, согласно идеологии. Что у вас к примеру есть программы и им нужны разные версии библиотек.
              Но если вы хотите то вы можете поставить на хост и мапить на гостувую общую либу. Правда есть вероятность что придётся спуститься с докера на уровень LCX.
              Или можно использовать идеологию Linux он изначально задумовался так что компьютер когда включается подключается к серверу(мейнфрейму) и мапит к себе программы. Да хотя бы через sshfs, или ftpfs или sambaclient.
              Сообщение отредактировано: Pavia -
                Цитата Pavia @
                В данном случае я докер рассматриваю как паровоз который таки вытянет LCX.
                В смысле LXC? А с фига ли он его вытянет?
                  Цитата Wound @
                  Т.е. в твоем случае получится 2 контейнера, в одном стоит Apache с поддержкой SSL, во втором PostgreSQL с поддержкой SSL. И пока они вообще никак не взаимосвязаны, ну если ты сам не настроишь между ними коммуникацию. Например через вебсервисы или еще как то.

                  В таком случае - как по мне, так лучше bhyve.
                  Как-то понятнее штоле :) А возможно и производительнее.
                    Цитата JoeUser @
                    В таком случае - как по мне, так лучше bhyve.

                    А чем лучше?

                    Добавлено
                    Ну и плюс пишут что он для FreeBSD.
                    Net Core вроде не поддерживает FreeBSD, т.е. могут быть косяки - https://github.com/dotnet/core/blob/master/...supported-os.md
                    В идеале мне вообще нужно запускать мое приложение на Astra Linux или Red OS каком нибудь.
                      Цитата Wound @
                      А чем лучше?

                      Проще. Соответствует принципу KISS. Пример стеба FreeBSD-шников: "Когда и мы наконец сможем начать все свое время тратить на решение проблем, вызванной применением Docker, ведь это так увлекательно!" ;-) ". jail'ы и bhyve vm - говорят по установке гораздо проще. А еще видел бэйнчи где bhyve делает одного из флагманов виртуализации VMWare ESXI на ряде тестов - знатно. Есть повод задуматься.

                      Цитата Wound @
                      Ну и плюс пишут что он для FreeBSD.

                      Да, там он - родной, работает в виде загружаемого модуля ядра. Ты пишешь про Net Core ... если про это:
                      Цитата
                      Переведено с английского языка.-.NET Core - это свободная управляемая программная среда с открытым исходным кодом для операционных систем Windows, Linux и macOS.
                      , то проблем нет - поднимаешь любую нужную тебе ОС в bhyve и ставишь .Net Core.

                      Примерчик

                      И да ... Линупс - суксь и мастай. А Фря - 4 ever! :lol:
                        Цитата JoeUser @
                        Проще. Соответствует принципу KISS. Пример стеба FreeBSD-шников: "Когда и мы наконец сможем начать все свое время тратить на решение проблем, вызванной применением Docker, ведь это так увлекательно!" ;-) ". jail'ы и bhyve vm - говорят по установке гораздо проще. А еще видел бэйнчи где bhyve делает одного из флагманов виртуализации VMWare ESXI на ряде тестов - знатно. Есть повод задуматься.

                        Ок, ты его сам использовал? Если использовал, то для каких целей и что там стояло? То что он проще, круче и т.д. по словам каких то FreeBSDшников, мне мало. Как говорится, каждая лягушка свое болото хвалит. Мне нужны гарантии что это все будет работать, на каком нибудь Red OS, внутри я смогу запустить ASP .NET Core приложение, которое будет крутится на nginx/apache, все это можно будет собирать на Jenkins под виндой(в принципе как альтернатива на крайняк собирать можно и на каком нибудь Linux CentOS).
                        Такими гарантиями могут быть списки поддерживаемого ПО. Но я лично их не вижу ни в bhyve, ни в .net core.
                        Еще и на вики пишут:
                        Цитата

                        Current development efforts aim at widening support for other operating systems for the x86-64 architecture.

                        Т.е. он даже толком архитектуру x64 не поддерживает, а у меня именно она.
                        Сообщение отредактировано: Wound -
                          Docker уже проверенная штука, на которой живет вся индустрия, поэтому плюй с высокой колокольни на фряховодов, и делай дело.
                            Цитата JoeUser @
                            , то проблем нет - поднимаешь любую нужную тебе ОС в bhyve и ставишь .Net Core.

                            Примерчик

                            Вот в этом примерчике - он 20 минут что то там пишет, настраивает что то - это все можно как то в три команды уместить и сделать кастом билд степом в MS VS ? Или мне после каждой сборки руками вот это все проделывать? :D
                              Цитата Wound @
                              Ок, ты его сам использовал?

                              В продакшене - нет. Гонял на тестовой машине ради интереса. Если действительно тебе интересно - зайди на bsdportal.ru, нам народ тебе все сомнения на байты разложит.

                              Цитата Wound @
                              Т.е. он даже толком архитектуру x64 не поддерживает, а у меня именно она.

                              Ты несколько неправильно перевел :lol: Речь идет о других ОС, отличных от FreeBSD, мастдайных) Для фри - все супер изначально.


                              Цитата Wound @
                              Вот в этом примерчике - он 20 минут что то там пишет, настраивает что то - это все можно как то в три команды уместить и сделать кастом билд степом в MS VS ? Или мне после каждой сборки руками вот это все проделывать?

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

                              Wound, да еще ... я тебе привел просто свое имхо. Доказывать и убеждать не собираюсь. Просто поделился с тобой кусочком информации. Ну а ты уж решай, пожалуйста, для себя сам самостоятельно.
                                Цитата JoeUser @
                                Ты несколько неправильно перевел Речь идет о других ОС, отличных от FreeBSD

                                Так у меня и не используется нигде FreeBSD. Windows+Linux. Конкретные версии линукса я выше написал.

                                Цитата JoeUser @
                                Он разжевывает. По большому счету все делается простыми скриптами.

                                Ага, особенно коммент под видео меня позабавил:
                                Цитата
                                поставить убунту, чтоб поставить внутрь FreeBSD, чтоб поставить внутрь виндовс... аццкая матрёшка..


                                Цитата JoeUser @
                                Единственный момент, не принято из мастдайной студии админить *nix системы, такого вообще не принято)))

                                В каком смысле? Что значит из мастдайной студии админить *nix системы? Собирать докер контейнер вполне себе принято, в 2017 студии поддержка для докер контейнеров для Linux/Windows встроена для ASP Net Core приложений прямо в студию. У меня проект сейчас на студии, собирает докер образ с Linux на борту с установленным в нем Asp .NET Core приложением. Или что ты имеешь ввиду то?

                                Цитата JoeUser @
                                Wound, да еще ... я тебе привел просто свое имхо. Доказывать и убеждать не собираюсь. Просто поделился с тобой кусочком информации. Ну а ты уж решай, пожалуйста, для себя сам самостоятельно.

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

                                Добавлено
                                JoeUser, я там в первом посту еще написал - что мне нужен толковый инструмент для развертывания .NET Core приложений под линукс.
                                Я лично знаю:
                                - autoconf, которому еще в прошлом десятилетии аналогов небыло, для сборки С/С++ проектов под линукс,
                                - Docker container, потому что я немного с ними работал в системе QRadar.

                                autoconf - это нужно мейкфайлы писать, ну как по мне это уже устарело, темболее для .NET приложений. Остается докер контейнеры. Вот я и создал тему, вдруг есть что то лучше - между старым autoconf и docker контейнером.
                                А реально нужно просто задеплоить ASP .NET Core приложение в линукс машину. Т.е. другими словами сделать аналог инсталлятора в винде, только для линукса. Если так понятнее будет.
                                Сообщение отредактировано: Wound -
                                  Wound, согласен! Я неправильно тебе посоветовал, не учел нюансы.
                                  Пожалуйста, развидь все то, что я написал :-?
                                    Ничем этот бхиве не лучше. Очередной LXC с блэкджеком и шлюхами. Докер по-сути та же хрень, но с заточкой на более удобное развертывание.
                                      Не, Докер, конечно, во многом удобен, но… Сначала вместо нативных приложений начали юзать всякие VM (в смыле а ля JVM, а не VMWare) с жирным рантаймом, потом начали писать десктопные приложения на всяких Web-технологиях (Electron, вот это всё), потом, видимо, предложат вместо нативных инсталляторов/пакетных-менеджеров распространять софт в виде Докер-образов.

                                      В итоге какой-нибудь Notepad.exe будет весить многие сотни мегабайт и отжирать в ОЗУ не меньше, дампиться каждую секунду на диск (SSD же быстрое, ага) и синхронизироваться с каким-нибудь клаудом. Т.е. требовать ресурсов больше, чем какая-нибудь ОС 90-х годов с кучей софта, а функциональности при этом предоставлять как… Ну вы знаете Notepad.exe
                                      Сообщение отредактировано: korvin -
                                        Цитата applegame @
                                        Очередной LXC с блэкджеком и шлюхами

                                        Ни разу.

                                        user posted image
                                          Цитата JoeUser @
                                          Ни разу.
                                          Ну прям вообще ни разу? Ничего общего? Ну окай, пусть будет очередной KVM.
                                          Сообщение отредактировано: applegame -
                                            Цитата JoeUser @
                                            Ни разу.

                                            Ты на этой картинке что с чем сравнил? Где на ней LXC, а где bhyve?
                                              Цитата korvin @
                                              Ты на этой картинке что с чем сравнил? Где на ней LXC, а где bhyve?
                                              Типа LXC - это контейнерная виртуализация, а bhive - гипервизорная.
                                                Ндаа ... Был неправ :) Docker некорректно сравнивать с bhyve - кроме изоляции ничего общего. Корректнее сравнивать Docker и фряшные клетки (Jail's). Вот тут да, общего гораздо больше. Нашел на ЛОРе среди традиционного стеба хорошее лаконичное сравнение: "Ну, Docker для Linux LXC — это как менеджер Jail из nullfs хоста FreeBSD с возможностью отката к снапшотам ZFS, если что пошло не так". Судя по возможностям - используя Docker, можно нехило поднять КПД своей работы. И да ... там еще можно грабить корованы :lol:
                                                  Что-то у вас какой-то ленивый и банальный срач :)

                                                  Докер-контейнеры крутятся на одном хостовом ядре. У виртуалок ядро свое в каждой VM. Говоря более простым языком, докер (как и любой контейнерный движок) - это штука, которая может запустить в твоей системе самые обычный процесс, но так, чтобы он не видел другие процессы в системе, имел сильно урезанные права и не мог отожрать ресурсов (cpu, memory, etc) выше определенного лимита. Вот вам наглядный пример.

                                                  Вот постгрес в virtualbox на линуксовой тачке (чорный ящик! И если я запущу внутри еще 100500 всякого шлака, ничего не изменится с точки зрения наблюдателя):
                                                  ExpandedWrap disabled
                                                    17762 ?        Sl     0:10 /usr/lib/virtualbox/VBoxSVC --auto-shutdown
                                                    18310 ?        Sl     0:40  \_ /usr/lib/virtualbox/VBoxHeadless --comment vg_default_1550653433491_40409 --startvm <...>


                                                  Вот постгрес в докере на линуксовой тачке (наравне с остальными процессами! Потому что это самые обычные процессы с точки зрения ядра):
                                                  ExpandedWrap disabled
                                                      592 ?        Ssl    2:40 /usr/bin/dockerd -H fd://
                                                      690 ?        Ssl    1:40  \_ containerd --config /var/run/docker/containerd/containerd.toml --log-level info
                                                    15908 ?        Sl     0:00      \_ containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/<...>
                                                    15923 pts/0    Ss+    0:00          \_ postgres
                                                    16017 ?        Ss     0:00              \_ postgres: checkpointer  
                                                    16018 ?        Ss     0:00              \_ postgres: background writer  
                                                    16019 ?        Ss     0:00              \_ postgres: walwriter  
                                                    16020 ?        Ss     0:00              \_ postgres: autovacuum launcher  
                                                    16021 ?        Ss     0:00              \_ postgres: stats collector  
                                                    16022 ?        Ss     0:00              \_ postgres: logical replication launcher


                                                  Это обуславливает легковесность контейнеров (количество приготовлений при запуске контейнера мало и, в основном, все время уходит на файловую систему; сам запуск контейнеризованного процесса - это обычный fork/exec вместо запуска полноценной системы), и это же обуславливет их уязвимость (изоляция на более высоком уровне => нужно иметь меньшую квалификацию, чтобы воспользоваться багом в изоляции или косяком того, кто запускал контейнер. Совсем недавно нашли дыру, позволяющую контейнерам, работающим от рута, перезаписать бинарник на хосте: https://nvd.nist.gov/vuln/detail/CVE-2019-5736).


                                                  Цитата korvin @
                                                  потом, видимо, предложат вместо нативных инсталляторов/пакетных-менеджеров распространять софт в виде Докер-образов.

                                                  Надеюсь, что не догадаются (небольшое уточнение: не догадаются для десктопов. На серверах докер-образа - это уже давно один из самых мейнстримных форматов выдачи и доставки). Пока докер под виндой - тухлое УГ, это будет сложно сделать. Плюс, я могу представить, как запустить приложение с гуем в докере под линухом (иксы, сетевая прозрачность, блаблабла), а сможет ли такое винда - хз (целый RDP будет поднимать при подключении к процессу в контейере? :D)


                                                  Цитата JoeUser @
                                                  Судя по возможностям - используя Docker, можно нехило поднять КПД своей работы.

                                                  Абсолютно верно, сейчас считается хорошим тоном при разработке какого-то сервиса коммитить в репу docker-compose.yml, поднимающий все зависимости этого сервиса (базы, кеши, и тд.), чтобы первый встречный мог просто сделать docker-compose up и запустить потом самопальный локальный билд сервиса на своей машине. Более того, сейчас докер используют даже для того, чтобы делать сборки (это же идеально чистое изолированное окружение под каждый новый билд). Самый распространенный сейчас вид агентов на CI-серверах - именно докер-контейнеры (Jenkins docker agent, Gitlab docker runner, и т.д.).
                                                  Сообщение отредактировано: Da$aD -
                                                    Цитата Da$aD @
                                                    Абсолютно верно, сейчас считается хорошим тоном при разработке какого-то сервиса коммитить в репу docker-compose.yml, поднимающий все зависимости этого сервиса (базы, кеши, и тд.), чтобы первый встречный мог просто сделать docker-compose up и запустить потом самопальный локальный билд сервиса на своей машине.

                                                    Я вот как раз так и сделал. Потому что по другому - слишком сложно будет развернуть тому, кто этот докер не делал. Слишком много телодвижений нужно сделать и подбросить всякие конфиги извне + настроить реверс прокси + пробросить сертификаты, короче без docker-compose.yml реально был бы геморрой. А так в принципе все сводится к нескольким рутинным телодвижениям(аля копи паста сертификатов и прописывание ип машины, на которой сервак крутится в конфигурации докера) и вызову одной команды.

                                                    Добавлено
                                                    Я тут даже недавно статью читал, как безопасно серфить в интернете с помощью Docker контейнеров :D Удобная штука в общем. ))

                                                    Добавлено
                                                    А вот нашел статью ))
                                                    Используем Doсker для безопасного веб-серфинга
                                                    Сообщение отредактировано: Wound -
                                                      Я правильно понимаю что докер-контейнеры для винды и для линкса разные, т.е. мы не сможем запустить контейнер для винды на линуксе и наоборот?
                                                        Цитата ^D^ima @
                                                        Я правильно понимаю что докер-контейнеры для винды и для линкса разные, т.е. мы не сможем запустить контейнер для винды на линуксе и наоборот?

                                                        Если я что-то понимаю, то докер для винды - это во-первых УГ, а во-вторых - это в первую очередь виртуалка с линухой, так что все должно быть примерно одинаково :)
                                                          Цитата ^D^ima @
                                                          Я правильно понимаю что докер-контейнеры для винды и для линкса разные, т.е. мы не сможем запустить контейнер для винды на линуксе и наоборот?

                                                          Не, все запускается норм вроде. Докер образ, который получается путем его сборки с помощью Dockerfile - это просто по сути zip архив. Его можно собрать хоть на винде, хоть на линуксе. В итоге у тебя получится всеравно один и тот же образ. Внутри этого образа стоит Linux подобная ОС, например Debian. Дальше ты просто монтируешь этот образ с помощью докер команды. И запускаешь его.
                                                          Естественно для запуска тебе нужно поставить сам докер. Я например компилировал докер контейнер на виндах, потом копировал полученный архив(докер образ) и разворачивал его на CentOS без каких либо проблем.

                                                          Добавлено
                                                          Цитата Астарот @
                                                          Если я что-то понимаю, то докер для винды - это во-первых УГ

                                                          Ну как сказать. Если у тебя есть приложение на Linux, а у клиента Linux нет, и он его принципиально ставить не хочет, но у него есть винда. А приложение в придачу очень сложно развертывать и настраивать, то возможно докер тут будет оправдан и на виндах. Другое дело что под винды нет смысла замарачиваться с докерами, когда можно взять wix/InstallShield. А так, это может быть вполне кросплатформенное решение. Ну если например у тебя что то написано под Linux, и портировать под винду ты не хочешь/не можешь.
                                                          Другое дело что не все версии винды поддерживают сам докер. Например последний докер работает только под Win10Pro x64, обязательно должна поддерживаться виртуализация + включен Hyper-V, иначе не заработает. И нужна физическая машина. На VMWare например, у меня не получилось включить виртуализацию(биос там примитивный на виртуалках), а в настройках самой виртуальной машины, те переключатели, которые якобы включают виртуализацию - не оказали никакого эффекта.
                                                          Еще можно взять предыдущий докер, он скорее всего будет работать на всех виндах старше Windows 7(на десятой у меня по крайней мере работало), но там тоже нужно включать виртуализацию.

                                                          Добавлено
                                                          Цитата Wound @
                                                          Его можно собрать хоть на винде, хоть на линуксе.

                                                          В MS Visual Studio 2017, есть даже поддержка Docker контейнеров с настройкой под Linux, так же есть возможность создавать Docker-compose.yml проект. В придачу проекты аля .NET Core можно компилировать прямо под Linux архитектуру на виндах. Уж про докеры молчу.
                                                          Сообщение отредактировано: Wound -
                                                            Цитата Wound @
                                                            Внутри этого образа стоит Linux подобная ОС, например Debian

                                                            Всегда считал что в контейнерах нет никаких гостевых ОС, только библиотеки
                                                              Цитата ^D^ima @
                                                              Всегда считал что в контейнерах нет никаких гостевых ОС, только библиотеки

                                                              Так и есть. Просто на виндах ты врубаешь Виртуализацию + Hyper-V, и докер при установке, создает виртуальную машину с линуксом. В самом докер-образе, который ты собираешь сам - просто набор библиотек самых стандартных + те, которые ты туда сам зальешь. А дальше, когда ты монтируешь и запускаешь образ, он вот тебе как раз на эту виртуальную машину его и монтирует.

                                                              Добавлено
                                                              Ну я там выше немного неправильно просто выразился. Это для понимания я так написал. Просто привычно говорить именно так, потому как реализация скрыта, но если брать по факту, то в докере нет никаких гостевых ОС, и это даже не виртуальная машина. Хотя для упрощения многие говорят что это Виртуальная машина с linux на борту.
                                                              Сообщение отредактировано: Wound -
                                                                Цитата ^D^ima @
                                                                Всегда считал что в контейнерах нет никаких гостевых ОС, только библиотеки

                                                                Шасть сюда https://habr.com/ru/company/ruvds/blog/438796/ Чтива там на пол часа, а общая картина проясняется капитально.

                                                                Добавлено
                                                                Цитата Wound @
                                                                Хотя для упрощения многие говорят что это Виртуальная машина с linux на борту.

                                                                В случае докера на win это так и есть - там ставится virtual box, в нем какая-то полноценная линуха, в которой уже установлен docker, в котором ты и работаешь.
                                                                  Цитата Астарот @
                                                                  В случае докера на win это так и есть - там ставится virtual box, в нем какая-то полноценная линуха, в которой уже установлен docker, в котором ты и работаешь.

                                                                  Это если не Windows 10 64bit: Pro, Enterprise or Education (1607 Anniversary Update, Build 14393 or later)
                                                                    Цитата Астарот @
                                                                    В случае докера на win это так и есть - там ставится virtual box, в нем какая-то полноценная линуха, в которой уже установлен docker, в котором ты и работаешь.

                                                                    virtual box - нужен исключительно для старой версии докера. Для последней не нужен от слова совсем, там все это создается с помощью Hyper-V.
                                                                    Сам докер ставится на винду, по крайней мере, после сноса последней версии докера и установки старой под Вынь 10 Pro, я без особого труда монтировал образы прямо из консоли Far, а не через терминал, хотя правильнее было бы через терминал. На сколько я понимаю - VM с Linux нужен для того, чтобы запустить на этой машине твое докер приложение, и не более(по крайней мере это справедливо для последней версии докера). Но в самом докер образе, никаких ОС и виртуальных машин нет. Там просто zip архив со слепком файловой системы. Каждая папка - по сути слой контейнера, называется как хеш коды MD5, и вот там в каждой папке каталоги с прогами. Они просто потом монтируются в виртуальную систему, которую сам докер для этого создает еще при установке.
                                                                      Цитата korvin @
                                                                      Это если не Windows 10 64bit: Pro, Enterprise or Education (1607 Anniversary Update, Build 14393 or later)

                                                                      Возможно, сам я на древнючей семерке живу :)

                                                                      Цитата Wound @
                                                                      Для последней не нужен от слова совсем, там все это создается с помощью Hyper-V.

                                                                      Да, там не нужен бокс, там нужен hyper-v, то есть последняя винда. И у кого-то из коллег с этим были какие-то проблемы, но я не помню какие.
                                                                        Цитата Астарот @
                                                                        Шасть сюда https://habr.com/ru/company/ruvds/blog/438796/ Чтива там на пол часа, а общая картина проясняется капитально.
                                                                        Из этих полчаса 25 минут воды.
                                                                          Цитата Wound @
                                                                          virtual box - нужен исключительно для старой версии докера. Для последней не нужен от слова совсем, там все это создается с помощью Hyper-V.

                                                                          И абсолютно не поддается траблшутингу, т.к. ты даже попасть внутрь не можешь. А багов у докера под виндой невиданное количество. Так что лучше не страдать фигней и ручками поднять виртуалку в VBox - здоровее будешь.

                                                                          Цитата Астарот @
                                                                          Шасть сюда https://habr.com/ru/company/ruvds/blog/438796/ Чтива там на пол часа, а общая картина проясняется капитально.

                                                                          Сомнительный материал для средней школы, где для упрощения сути в физике, математике и химии прибегают к метафорам, которые дальнейшее, более детальное, понимание материала только замедляют и усложняют.
                                                                            Цитата Da$aD @
                                                                            И абсолютно не поддается траблшутингу, т.к. ты даже попасть внутрь не можешь.

                                                                            Почему не можешь? Через Hyper-V монитор вроде можно подключиться.
                                                                              Цитата Da$aD @
                                                                              Сомнительный материал для средней школы

                                                                              Так я так и сказал, чисто прояснить картину, не более :-?
                                                                                Я вот не помню, врать не буду подключался я или нет, но то что я монитор открывал - это 100% и там есть подключится к VM, и даже настроить можно. Даже можно создать свою машину и указать докеру юзать ее.
                                                                                По крайней мере на такие статьи я точно натыкался при работе с докером.

                                                                                Добавлено
                                                                                Во даже видео есть - https://www.youtube.com/watch?v=oA9Ix6GFMPM
                                                                                  Чего-то не получается холивар, прямо :D Докер рулит и точка, прямо :D На винде докера действительно нет, он, похоже, слишком привязан к никсам по своей архитектуре, что портировать его куда-либо не получится от слова совсем, результат - ВМ, а в ней уже докер (ыыыы, двойная изоляция по факту, но это в принципе-то хорошо). А главное - консенсус! Я, кстати, солидарен с вами - на моей текущей работе как раз запиливают .NET Core приложение на докере, и оно очень весело и деплоится, и проверяется, но и падает так неплохо :D А вот что за контейнеры на фрях - надо почитать.

                                                                                  Вообще ИМХО при корректной реализации изоляции кривое докер-приложение не должно будет поломать ОС, но оно может устроить DoS на уровне сетевой подсистемы всем остальным контейнерам из-за общего сетевого стека на уровне ядра. ВМ для приложения лишена этого ограничения, но всё ещё может устроить DoS, если зафлудит хостовые интерфейсы (что можно, впрочем, довольно легко пофиксить со стороны гипервизора, оторвав проблемной ВМ шнурок на уровне vswitch'a, но цена изоляции - полноценная ОС со своим persistence point и вообще рисками безопасности. Интересно было бы сравнить легкость закрепления в сети при атаке на приложение внутри ВМ против атаки на приложение в контейнере (предположим, на одинаковой архитектуре), легкость обнаружения "застревания" атакующего со стороны владельца хоста и его исправления с минимальными простоями, а также разницу в цене решения на ВМ+ОС в ресурсах и лицензиях. Но что-то мне кажется, больно много неизвестных для сколько-нибудь правдоподобной оценки.
                                                                                    Цитата Vesper @
                                                                                    результат - ВМ, а в ней уже докер

                                                                                    Результатом, по идее, должен быть отказ от виндового сервака в пользу линухи...
                                                                                      Цитата Астарот @
                                                                                      Результатом, по идее, должен быть отказ от виндового сервака в пользу линухи...

                                                                                      Формально так и есть, с той разницей, что, увидев, как докер реализован на виндах, виндовый сервер и поднимать не стали. ;)
                                                                                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                      0 пользователей:


                                                                                      Рейтинг@Mail.ru
                                                                                      [ Script execution time: 0,0930 ]   [ 16 queries used ]   [ Generated: 28.03.24, 20:09 GMT ]