Docker Hub - что это, зачем, и откуда "вой"

Аватар пользователя Serg_2022

 Oleg K. 09:52
Доброе утро, камрады и читатели.

    Так как возникло много не совсем корректных вопросов после закрытия Docker Hub, что там хранили пользователи и почему - я хочу попробовать в одном сообщении рассказать что это за сервис. Думаю, что многое станет понятнее. Будет немного длинный текст, но это необходимо для понимания контекста.

    Давным давно (лет 20 назад) большую часть программ писали для обычных компьютеров, которыми пользуются люди на домашних или офисных компьютерах. Большая часть писалась под Windows, Mac OS. Пользователи и администраторы более-менее научились с ними работать. Отличительной особенностью таких программ являлось более-менее предсказуемое окружение (в виде операционной системы, настроек пользователя типа "язык", "форматы даты и чисел", "часовой пояс" и других), простота перезапуска программы в случае сбоя, простота установки и настройки.


 

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

  1. Во-первых, окружение на серверах отличается гораздо больше, чем на "десктопах в начале 2000-х". 
  2. Во-вторых, сайт предполагает одновременную работу нескольких пользователей с разными языками, настройками и так далее. 
  3. В-третьих, операционных систем огромное количество, а вариаций локальных настроек - на несколько порядков больше (больше сотни комбинаций можно насобирать). Эти проблемы все решаемы, но для этого нужны инженерные кадры с наличествующим у них на эти задачи временем. А с этим был и есть большой дефицит. 
  4. В-четвертых - чаще стали возникать проблемы вида "у программиста всё работает, а у пользователя - нет", так как у программиста на компьютере обязательно устанавливались и настраивались дополнительные подсистемы и библиотеки, необходимые ему для работы.


    Итак, "на рынок" хлынул поток программ, которые отказывались нормально работать при попытке их запуска. Индустрии понадобилась некоторая унификация - чтобы можно было хоть как-то запускать программы. Одним из успешных подходов стал docker - по сути, внутри компьютера запускается другой мини-компьютер с ограниченными и только необходимыми ему для работы подсистемами, и уже в этом мини-компьютере запускается написанная программа (вебсайт, сервис или что-то ещё). И внутри этой мини-системы ("контейнера") уже программист на этапе разработки раскладывает конфигурацию нужным ему способом, устанавливает недостающие программы и так далее. Это позволило убрать вариативность рабочего окружения и программы стали работать одинаково как у программиста, так и на сервере. Теперь можно было в 3 строки в текстовом файле "поднять сайт". И не надо учиться администрировать Linux-сервера, работать с консолью и так далее. Теперь в "программисты" хлынула вторая волна - люди, которые начали комбинируя разные программы (базы данных, нейросети по распознаванию лиц, веб-сайты и прочее) создавать новые программы. 

   И здесь серьезных проблем возникло ровно три: откуда-то надо брать "базовый образ системы", где-то надо хранить собранные образы своих программ, сами программы от этого лучше не становятся и постоянно ломаются. Для решения первых двух компания Docker предоставила площадку (сначала бесплатную, а потом за регистрацию и некоторую оплату - когда нагрузка стала непомерной), а для решения третьей - компания Google, которая с самого своего основания отлично умеет работать с постоянно-ломающейся инфраструктурой, разработала специальный сервис Kubernetes (K8S). Последний - в случае неисправности оборудования умеет "скачать образ заново и запустить его с прежними настройками" (и скачивать он его будет, например, с того самого Docker Hub).
 

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

   В нормальных организациях никто не использует исходные образы с docker-а, а собирает их самостоятельно, размещает на своих серверах и никого "чужого" на эти сервера не пускает. Дело это не сильно сложное и не очень ресурсо-затратное. Поэтому "неопытный молодняк" воет на просторах интернета, а обычные нормальные парни отметили про себя: "А он разве не был заблокирован раньше? Ну и ладно - всё равно им и не пользовался."


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

P.S. Я постарался рассказать упрощенно и не включил в текст нюансы вроде того, что контейнеры и виртуализация (компьютерная и сетевая) были уже в 2000-х, программные watchdog-и на сервисах тоже больше 15 лет в индустрии используются, конкретные решения не ограничиваются теми, что я указал выше

Авторство: 
Копия чужих материалов

Комментарии

Аватар пользователя Flavof
Flavof(2 года 9 месяцев)

собсно как обычно

 

Аватар пользователя dvlom7
dvlom7(3 года 11 месяцев)

"... что контейнеры и виртуализация (компьютерная и сетевая) были уже в 2000-х". Даже раньше. Я столкнулся с этим еще в начале 90-х. На ЕС-1066 была развернута и работала подсистема HP-UX. Это нам подарок сделало одно профильное НИИ. Знали что у нас разрабатываются программы для этой среды.

Аватар пользователя Ути-пути
Ути-пути(1 год 2 месяца)

Это больше на полноценную виртуальную машину похоже. А первые контейнеры - это скорее jail из фряхи.

Аватар пользователя Феофан Пургелин

jail  активно использовал году в 98-м, емнип. Как средство изоляции вполне себе.

Аватар пользователя qwweer
qwweer(9 лет 1 месяц)

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

Аватар пользователя pr0g4r0m
pr0g4r0m(4 месяца 1 неделя)

Это как можно уточнить?

Архитектурно это разные машины ЕС-1066 и сервера под HP-UX (использовался на процессорах Motrola и PA-RISC если про те времена говорить, потом появился Intel Itanium), соответственно должна быть полная эмуляция железа, чего по ЕС-1066 не было, либо портировать ОС HP-UX под платформу EC-1066 что конечно возможно если сделать реинжиниринг ОС поскольку в открытых исходниках данная ОС не распространялась.

Комментарий администрации:  
*** отключен (провокатор, призывы уничтожать мирное население напалмом и прочим) ***
Аватар пользователя аcid
аcid(1 год 9 месяцев)

Если я всё правильно понял, то отключение от Docker Hub равноценно отключению от инстаграмма. Не смертельно, я считаю.

Комментарий администрации:  
*** отключен (инфомусор, немотивированные оскорбления участников СВО) ***
Аватар пользователя Великий Кукурузо

Даже близко не равноценно, когда у тебя в компании полностью ложится CI инфраструктура и желание посмотреть на жопы в инстаграме

Аватар пользователя Феофан Пургелин

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

Аватар пользователя Великий Кукурузо

Не всё лежит во внутренних репо. Образы имеют несколько стейджей, из которых ну точно хоть один есть не самописный. Врать нет необходимости 

Аватар пользователя Феофан Пургелин

Чёрт его знает, как-то оно же проходит сертификацию у тащмайора.

Аватар пользователя qwweer
qwweer(9 лет 1 месяц)

В нормальных компаниях CI завязана на собственную registry. Тем более, что это бесплатно и сравнительно несложно. Создание новых образов для контейнеров - да, могут быть некоторые сложности. Но переход на новые версии систем не такое частое событие, чтобы это стало заметно достаточно быстро.

Аватар пользователя Великий Кукурузо

Собственный registry... Хм... Дайте угадаю - это про просто кэш оригинального реестра. Это, конечно, лучше чем без него. Но и выдавать это за мега решение - тоже шутка 

Аватар пользователя roman.kuvaldin
roman.kuvaldin(12 лет 9 месяцев)

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

Аватар пользователя Великий Кукурузо

С чего это быстрее?

Аватар пользователя roman.kuvaldin
roman.kuvaldin(12 лет 9 месяцев)

Как это устроено у нас (собираем на Java):

Есть внутренний гитлаб, к которому подключены несколько десятков runner-ов, занимающихся сборкой.
Есть Artifactory с настроенным проксированием как докер-образов, так и jar-ов (библиотеки на Java)
Всё это живет в одном датацентре с толстенными каналами связи железок друг с другом.
Соответственно, все сетевые операции выполняются внутри одного ДЦ и качается всё практически моментально.

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

P.S. Там ниже про свои образы было: так вот, мы сначала eclipse temurin v17 использовали, а потом пришли чуваки из безопасности и вынудили нас перейти на ими собственноручно собранные Appsec Images, из которых вырезано вообще всё кроме минимума, нужного для сборки сервисов.

Аватар пользователя Великий Кукурузо

А ну понятно. Я то думал, что речь про доступ через прокси к оригинальному хабу.

Аватар пользователя X86
X86(5 лет 10 месяцев)

Даже близко не равноценно, когда у тебя в компании полностью ложится CI инфраструктура и желание посмотреть на жопы в инстаграме

Ну, такой, значит бизнес. Есть и "бизнес" на инстаграме, и даже очень развитый.

Аватар пользователя monk
monk(12 лет 7 месяцев)

У меня в городе есть ресторан, где меню выдают в виде ссылки на Инстаграм. До сих пор.

P. S. Думаю, те, кто пользовался докерхабом, также просто взгромоздят на сервер ещё и VPN.

Аватар пользователя СибВатник
СибВатник(8 лет 1 неделя)

Но у тех, кто серьезно подходит к своей работе, зависимость от "чужого" всегда минимальна.

У многих это сложилось исторически, и не всегда по техническим причинам.

Аватар пользователя Ernst
Ernst(9 лет 4 месяца)

Теперь можно было в 3 строки в текстовом файле "поднять сайт". И не надо учиться администрировать Linux-сервера, работать с консолью и так далее.

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

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

Аватар пользователя -UMS-
-UMS-(9 лет 6 месяцев)

Так ведь и нет никакого воя. У кого был какой-нибудь инфобез - образы заранее выкачивали/проверяли/сами собирали и хранили в своих registry.

Кому пофиг - добавят зеркала, скачают через впн.

Аватар пользователя Ути-пути
Ути-пути(1 год 2 месяца)

Зеркала - это та еще дырища, сейчас каждое второе будет со зловредами в образах.

Аватар пользователя Великий Кукурузо

Понятно что дырища, но нет у нас госхаба... 

Аватар пользователя Профаныч
Профаныч(9 лет 8 месяцев)

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

Аватар пользователя Великий Кукурузо

Проблемы никакой

Аватар пользователя Ути-пути
Ути-пути(1 год 2 месяца)

Так ВПН/прокси есть, это лучше, чем не пойми откуда качать.

Аватар пользователя Великий Кукурузо

В нормальных организациях никто не использует исходные образы с docker-а, а собирает их самостоятельно,

Таких организаций не существует. Никто в здравом уме не будет пересобирать любой образ с нуля. Это ещё объяснимо для production образов, но в любой компании не будет 100% своих лично собранных образов. Да чё уж там и 5% не будет, тк это тупо нерационально.

Аватар пользователя thefish
thefish(9 лет 6 месяцев)

Блин, мне платит несуществующая организация. Круто.

Аватар пользователя Лодочник
Лодочник(1 год 4 месяца)

Текстовый редактор у вас в организации тоже самописный? 

Аватар пользователя thefish
thefish(9 лет 6 месяцев)

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

Аватар пользователя Лодочник
Лодочник(1 год 4 месяца)

Начни с себя, клоун

Аватар пользователя Serg_2022
Serg_2022(2 года 6 месяцев)

Давайте по делу писать.

Есть что полезное по теме сказать?

Аватар пользователя Великий Кукурузо

А тебе?

Аватар пользователя Великий Кукурузо

Круто, мог бы и не врать так нагло.

Аватар пользователя Алекс_андр
Алекс_андр(7 лет 4 месяца)

По крайней мере в "нормальной организации" эти (собранные другими) образы будут лежать на своём внутреннем сервере, а не скачиваться с чужого.

Аватар пользователя pivnik
pivnik(4 года 2 недели)

рукожоп пытается оправдаться за свое рукожопие smile3.gif

а ему ещё и з/п платили...

все остальные даже не заметили "закрытия" )

Аватар пользователя просто пользователь

Лень наказуема

Аватар пользователя letatel
letatel(10 лет 7 месяцев)

Самое хреновое это то что вроде бы адекватные люди , стоящие за этим сервисом сразу превратились в 💩

Аватар пользователя Лодочник
Лодочник(1 год 4 месяца)

https://huecker (.) io
на здоровье 

Аватар пользователя Ути-пути
Ути-пути(1 год 2 месяца)

С малварью и троянами!

Аватар пользователя monk
monk(12 лет 7 месяцев)

Как будто в изначальном хабе их не было.

Аватар пользователя Ivor
Ivor(12 лет 2 месяца)

Есть ещё пара моментов. Докер (без кубера) позволяет быстро поставить и запустить прототип. Сайта, сервиса, проверить новую версию уже имеющегося и подобное. А кроме того, некоторое серверное (открытое!) ПО официально поставляется в докер-образах через докер хаб. Да, можно и из исходников, но рекомендуемый самим создателем путь - докер. И вот тут обвинять пользователей - некорректно.

P.S. А через зеркала разной дряни сейчас попрёт, да...

Аватар пользователя monk
monk(12 лет 7 месяцев)

P.S. А через зеркала разной дряни сейчас попрёт, да...

Кто верит, что в зарубежном ПО изначально нет дряни, поставит VPN и продолжит им пользоваться. 

Аватар пользователя Ivor
Ivor(12 лет 2 месяца)

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

Аватар пользователя monk
monk(12 лет 7 месяцев)

Если оно исключительно через докер, то гарантировать отсутствие вредоносов в нём практически невозможно.

Если исходники опубликованы, то почти наверняка есть образы докера для Астры или Альта.

Давайте хоть пример, о чём речь? Мне пока не надо было ПО, которое существует только в докерхабе.

Аватар пользователя jsecoder
jsecoder(2 года 9 месяцев)

Я сам дочь офицера, и поверьте мне, с использованием сторонних образов, не всё так однозначно, всегда найдутся кейсы когда это оправдано.

Например для нужд тестирования всякого opensource, самому собирать образ какого-нибудь скажем Redis это явно избыточно. Ну и допустим соберу я свой образ, а мне же его теперь и хранить где-то надо, чтобы какой-нибудь Джо с Техасчины, когда пул реквест в мою библиотеку засылает, мог нормально у себя на машинке тесты сначала прогнать, и тут получается просто собрать образ недостаточно, нужно ещё свой репозитарий поднять и оплачивать хостинг для него, что достаточно проблематично, с учетом того что большинство opensource проектов никаких денюшек не приносят.

И я думаю такая же хрень, с бесплатными курсами и документацией.

На текущий момент проблем нет с отключением DockerHub, кроме как зеркала настроить.

Аватар пользователя atman82
atman82(8 лет 8 месяцев)

Западный софт могут перекрыть в любой момент. Нужно свою виртуализацию разрабатывать.

Аватар пользователя roman.kuvaldin
roman.kuvaldin(12 лет 9 месяцев)

Докер и контейнеры в целом - это не виртуализация.

Аватар пользователя kozak_punk
kozak_punk(2 года 10 месяцев)

Да расслабились все, привыкли что все работает из коробки. Только месяц назад затянул все базовые образы ОС которые мы используюем для деплоя в свой регистри, а тут раз, и перекрыли. Не сказать что это какая нибудь проблема, все что нужно, можно скачать к себе через впн и запушить в свое хранилище если оно есть. Но для различных поделок типа прототипов на гитхабе, неприятность. Часто для функциональных автотестов пишут скрипты предполагающие использование сервиса из стокового образа. 
Хотя о чем это я, надо бы уже искать альтернативу гитхабу и мигрировать туда потихоньку.

Страницы