Comments 82
а что будет, если заблокируют и эти хосты, или с ними случится какая-то проблема?
По этому вопросу лучше бы сделали сборник зеркал, проверили бы их на работоспособность, какая скорость через них и т.п.
https://huecker.io/ тут можно глянуть список зеркал )
А в чем проблема, если запустить трафик до докер хаба через импортный vpn?
Импортный впн под запретом уже в России. Свои не пускают, чужие запрещают. Жизнь- борьба.
Технически же работает.
А можно ссылку на конкретный нормативно-правовой акт, пожалуйста?
Вы сомневаетесь, что в РФ заблокированы на уровне протоколов все популярные виды VPN-ов (openvpn, wireguard и другие) на внешние IP?
Покажите мне пожалуйста запрет на импортные VPN, а не размышления на тему *"да ниужеле ви самниваитись"*. Запрет - это **конкретный нормативно-правовой акт** , а не измышления.
Какие "размышления", вы сами то ответьте, заблокированы VPN по вашему или нет? "Под запретом" в данном случае значит, что *соединения заблокированы*, и это действительно так.
А "конкретный акт" по блокировкам вам никто в РФ показывать не будет, вам же не показали когда заблокировали? Если он вам нужен, то подайте в суд на РКН и, может быть, вам какую-то бумажку в суде покажут, якобы на основании которой заблокированы все протоколы VPN. А, может, и не покажут, скажут - на основании такого-то закона и всё. Поздновато вы решили играть в юриспруденцию в РФ.
P.S. Ваше передразнивание "да ниужеле ви самниваитись" я даже комментировать не буду.
(вздыхает) 10 минут назад по ip я был "из Брюсселя", вчера "из Варшавы". Физически нахожусь в СПб.
ЧЯДНТ?
Что я делаю не так?
Вы неправильно ведёте дискуссию, вот что вы делаете не так. На простые вопросы собеседника не отвечаете, пишите сообщения на грани связности дискуссии, как чатбот десятилетней давности.
Про значение "под запретом" я вам объяснил, про то, где вы можете взять "свой акт" я вам тоже дал рекомендацию. Если у вас не осталось вопросов, (а на мои вы так ни разу прямо и не ответили), то всего доброго.
Понимаете, я вот сегодня с территории РФ несколько раз по VPN соединялся с зарубежными серверами. Подскажите, а как "блокируют соединения", если я свободно и не напрягаясь делаю это?
Объяснение очень простое: не у всех провайдеров и не везде ещё настроены и функционируют на полную ящики ТСПУ. И развёртывание новых правил фильтрации на них также происходит не на всех сразу. То, что у вас ещё до сих пор работает VPN (вы так и не сказали какой протокол) на внешние IP - это скорее всего просто временная недоработка цензоров. А у других людей (большинства?), представьте, уже не работает. Можете сами почитать ветки про это, узнать города, провайдеров и прочее, у кого и как openvpn, wireguard, quic и, вероятно, многое другое блокируется именно по протоколам через перехват и разбор пакетов.
Ваш аргумент очень похож на «у меня такая же нога и не болит».
Я вот на домашнем интернете тоже могу пользоваться VPN (OpenVPN), а вот по через мобильного оператора подключиться не могу.
В прошлых обсуждениях была информация что зеркала не принимают креды от докерхаба, из-за чего запросы к зеркалам не работают, потому докер лезет на основной сайт и создаётся впечатление что настройка зеркал вообще не работает.
Добавить бы в инструкцию про необходимость разлогиниться чтобы зеркала заработали.
Я перечислил все действия, которые позволили заставить работать Docker лично у меня
Но нужно-то чтобы докер заработал у того, то вашим инструкциям следовал
я имею в виду, что я не упустил ни один шаг. если мне это не потребовалось, как я могу знать, что потребуется кому-то другому? и с чего это не заработает у кого-то если заработало у меня?? к тому же если не работает, можно осветить ситуацию в комментариях, подробно описав её, вместо того, чтобы минусить
А как насчёт варианта установки и обновления из скачанных образов контейнеров? Или такие инструкции давно существуют?
docker login у вас работает с такими настройками? у меня не взлетает, ошибку 403 все равно возвращает. Логиниться пытается на основные серверы:
Error response from daemon: login attempt to https://registry-1.docker.io/v2/ failed with status: 403 Forbidden
Ещё не приходилось пользоваться этой технологией, и знания по ней только в общих чертах, поэтому есть вопрос: для чего и как часто вы выкачиваете образы с докерхаба? ? Можно один раз скачать и пользоваться? Или так не работает? ?
Да, скачать один раз можно. Но обновления же тоже нужно как-то получать?
Обновление внутрянки контейнера? Типа вышел новый dotnet/патч безопасности -> образ обновился -> качаем?
А самим сделать образ и периодически обновлять его намного сложнее, чем качать уже кем-то созданный? В теории же можно это автоматизировать, как билд после коммитов и тестов ?
Можно. Но когда-нибудь базовый образ всё равно придётся обновить.
Можно вообще указать в Dockerfile прямую ссылку на образ, который не находится на docker.io, но из-за того что всё в докере прибито в докеру, об этом мало кто знает. Плюс в образе, который зависит от исходного, может быть только имя образа и докер опять же её будет резолвить в docker.io
В podman такой проблемы нет, он by design не резолвит короткие именя по-умолчанию и это надо принудительно разрешать.
А при чём тут Беларусь? У нас всё работает.
А вы пробовали образы скачивать с dockerhub? У части Белорусов точно не работает, об этом много комментов и материалов в рунете. Если лично у вас работает - круто, сохраняйте статью на случай если и до вас доберется проблема. Т.к. в письмах от самой поддержки Docker фигурирует следующий текст:
Hi there,
Thank you for contacting Docker Support.
At this time we are no longer doing business with Russian or Belarusian companies and have removed the ability to purchase subscriptions from these countries.
https://www.docker.com/blog/dockers-response-to-the-invasion-of-ukraine/
Since Docker is a US company, we must comply with US export control regulations. In an effort to comply with these, we now block all IP addresses that are located in Cuba, Russia, Iran, North Korea, Republic of Crimea, Sudan, and Syria.
Best regards,
Docker Support
Есть ещё и другие зеркала и даже сайт на котором они собраны huecker.io
если заблокировали- значит в этом есть какой то смысл. зачем ломиться в закрытую дверь? вам там мне рады, уходите
Когда, условно говоря, разворачиваешь никому не известный пет проект у себя на локалке под докером - это одно, и тут отказаться от докера очень легко. Другое дело когда у тебя проект на продакшене которым несколько тысяч человек пользуются, тебе надо выгружать обновления проекта согласно плану, и ты резко узнаёшь, что проект не может собраться из за этой проблемы. И в первую очередь нужно как то спасти ситуацию, прежде чем задумываться как грамотно перенести проект с докера например.
Такова плата за полагание в разработке на фундаментально порочную парадигму.
Так ни что не мешает и на ХоумЛабе поднять всю эту инфраструктурную байду. У меня есть мой личный Gitea, с раннерами для CI/CD и локальным Registry для образов.
А уж любая приличная компания обязана иметь локальные серсисы в периметре VPN-на рабочего, и лучше на своем собственном железе, иначе это какая-то наивная пионерия.
В Беларуси всё работает
А вы пробовали образы скачивать с dockerhub? У части Белорусов точно не работает, об этом много комментов и материалов в рунете. Если лично у вас работает - круто, сохраняйте статью на случай если и до вас доберется проблема. Т.к. в письмах от самой поддержки Docker фигурирует следующий текст:
Hi there,
Thank you for contacting Docker Support.
At this time we are no longer doing business with Russian or Belarusian companies and have removed the ability to purchase subscriptions from these countries.
https://www.docker.com/blog/dockers-response-to-the-invasion-of-ukraine/
Since Docker is a US company, we must comply with US export control regulations. In an effort to comply with these, we now block all IP addresses that are located in Cuba, Russia, Iran, North Korea, Republic of Crimea, Sudan, and Syria.
Best regards,
Docker Support
Proxmox.
Что на счет Kubernetes? по нему есть какие-то похожие проблемы.
Возможно в инструкцию стоит добавить `dockerd --validate` перед перезагрузкой сервиса.
Ещё от берега зеркало и от гугла
"registry-mirrors": [
"https://dockerhub1.beget.com",
"https://mirror.gcr.io"
]
Бегет молодцы, быстро сориентировались. Я от них и узнал от первых в их канале. Я так понял что они уже смаршрутизировали трафик так, что у всех абонентов теперь все доступно. (Наверное в впн завернули всех в направлении докера). Думаю что все нормальнеые операторы скоро так сделают.
P.S. Сам не проверял, их VDS-ами не пользуюсь, просто в группе их прочитал, т.к. домены у них держу.
для проектов стоящих в продакшене на Docker стало серьёзным форс-мажором и проблемой
Может я что-то не понимаю, но в продуктивное использование образ после обновления всё равно попадает после тестирования. Так что между выходом обновлений и необходимостью обновить образ для продуктива по любому проходит не мало времени. А обновить образ самостоятельно никто не запрещает. Ну обновите его в локальном репозитории руками через неделю. Каким образом это может привести к форс-мажору?
Во-первых, откуда вы возьмёте обновлённый образ, чтобы обновить его "руками"?
Во-вторых, очень много инструментов и процессов полагаются на наличие реестра с образами. Сборка проекта? В свежем контейнере с образом из реестра. Автотесты? Надо поднять свежую БД из образа. И т.д.
Создается базовый локальный образ, со всеми необходимыми скриптами, программами, настройками и сохраняется в локальный репозиторий. Далее для разработки используется этот базовый образ. По опыту, необходимость пересобрать базовый образ возникает раз в пару лет или вообще никогда. Кроме того что базовый образ всегда один и тот же и не будет проблем со сборкой в самый неподходящий момент. Например, был случай что пакеты debian перенесли в архив и были не доступны командой apt install, пришлось дописывать настройки, откуда их брать. Дополнительно сокращается время сборки образа, так как не надо устанавливать все пакеты и расширения, например, PHP, а только нужно скачать базовый образ и скопировать туда код
Это ж кто-то должен в команде отвечать за этот самый базовый образ, его нужно версионировать и т.п. Слишком сложно для малых команд.
Собрать контейнер - несколько часов от силы. Если он не торчит голой задницей в интернет, то обновлять его нужно раз а год-два. Уж найти суммарно день в году может позволить себе даже одиночка. А риск потерять несколько дней при неожиданном обновлении контейнера из внешнего репозитория, эти затраты с лихвой покрывает.
Мы даже nuget и npm репозитории содержим локальные, уже нарвавшись на неожиданное изменение пакета без смены его версии.
откуда вы возьмёте обновлённый образ, чтобы обновить его "руками"
Вообще не понял фразы. Для обновления имеющегося образа руками обновленный образ совершенно не нужен. Процесс обновления образа не сильно отличается от процесса обновления системы без контейнеризации.
очень много инструментов и процессов полагаются на наличие реестра с образами
Естественно. Для этого и содержат локальный репозиторий. Для продуктивного использования это обязательно, так как даёт гарантии того, что используемый в продуктивной эксплуатации образ не изменится неожиданно сам.
Если бы абсолютно все использовали локальные репозитории с самостоятельно собранными образами - никакого докерхаба бы не существовало, как и проблем с блокировками на его стороне. Но я вижу обратную ситуацию.
Для обновления имеющегося образа руками обновленный образ совершенно не нужен. Процесс обновления образа не сильно отличается от процесса обновления системы без контейнеризации.
Да ну?
Ну покажите как вы будете обновлять, ну к примеру тот же mcr.microsoft.com/dotnet/aspnet:8.0.5
до версии 8.0.6
И ладно бы это один-единственный такой образ был...
докерхаба бы не существовало
При прототипировании и разработке он существенно сокращает трудозатраты. Но использовать для продуктива внешний ресурс без контракта с жёсткими санкциями и неустойками - себе дороже.
покажите
Обновить только nuget пакет религия запрещает?
Какой именно пакет вы собрались обновлять и почему вы думаете что разница там исключительно в этом пакете?
Хорошо, пусть я ошибся, и следует обновлять deb пакет, а не nuget. Сути дела это всё равно не меняет.
А пользоваться контейнером, если нет точной информации о его составе - риск с точки зрения ИБ. Это даже не считая сложностей его самостоятельной поддержки. Одно дело дополнительным слоем накатить обновление, а совсем другое, когда с более старого слоя прилетает что-то неожиданное.
Нет, dev пакета там тоже нет.
Почему пользоваться nuget пакетом - не риск, пользоваться deb пакетом - не риск, а пользоваться официальным докер образом от того же производителя - внезапно риск?
Это даже не считая сложностей его самостоятельной поддержки.
Вот об этом я и говорю. Нефиг обновлять чужие образы.
Почему пользоваться nuget пакетом - не риск, пользоваться deb пакетом - не риск, а пользоваться официальным докер образом от того же производителя - внезапно риск?
Всем рисковано пользоваться. Просто пакеты намного менее трудоемко тестировать и анализировать на предмет безопасности, чем контейнеры.
Я же писал выше. Если с поставщиком заключён контракт с жёстко прописанными штрафными санкциями и неустойками - пользуйтесь. Если такого контракта нет - то всё только через тестирование и анализ на безопасность.
Вот именно, пакет проверить проще, чем образ. Поэтому, если у вас такое лютое ИБ, откуда у вас вообще возьмётся чужой образ, вроде mcr.microsoft.com/dotnet/aspnet:8.0.5?
А если такого образа у вас нет, то что вы собрались обновлять?
Положили **после проверки ИБ** этот образ в локальный репозиторий и используем только его.
А любые изменения локального репозитория, в т.ч. обновление пакетов/образов - **строго и только через ИБ**, это их печаль - гарантировать безопасность используемых инструментов.
При деплое проекта обычно контейнеры пересобираются, во время пересборки идет скачивание образов с dockerhub и удаление старого контейнера. То есть если сейчас задеплоить проект на Докере, он мало того что не соберется, так еще и не откатишься обратно ибо контейнер уже удалился.
во время пересборки идет скачивание образов с dockerhub и удаление старого контейнера
Впервые о таком слышу. Если образ из dockerhub даже был помещен в локальный репозиторий, то при сборке явно берется протестированный и проверенный образ именно из локального репозитория. Я даже не могу припомнить, чтобы процесс CI/CD хоть у одного из моих клиентов имел доступ в интернет - только к локальным репозиториям. А то так в каком-то deb/nuget/npm/... что угодно может прилететь и в продуктив попасть.
Знаю автора по совместной работе с одного проекта. Он утверждал, что докер не нужен. Смешной чел.
Уже чувствую как этот коммент заминусят, однако без докера вполне можно обойтись, вручную устанавливая все программы. не спорю что когда их много с докером проще, но вот к примеру мне нужно развернуть nest, postgres и redis. И это вручную сделать не так уж и долго. То есть да, с докером проще, но если его убрать из цепочки, проект так же будет работать и функционировать, и на его разворачивание не потребуется несколько дней без докера.
Вы просто рассматриваете контейнеризацию только в целях упрощения прототипирования и разработки, забывая о том, что преимущественно она используется для горизонтального масштабирования, повышения надежности и балансировки нагрузки.
Вы правы, однако часто Docker используется просто "чтобы был" в системах, которые не масштабируются горизонтально либо никогда, либо в перспективе ближайших ±3 лет
По факту - без него можно обойтись.
Ищите локальные российские решения типа Коробки (https://habr.com/ru/articles/811375/), полагаться на проде на зеркала, которые в любой момент могут закрыться - это прямо для любителей пощекотать себе нервы.
Подстава пришла откуда не ждали..
Вспомним старые, добрые времена когда существовали install.sh и update.sh.
Сейчас конечно есть ansible и jenkins которые могут помочь оркестрировать continues delivery с разворачиванием окружения прямо на железе.
Немного побрюзжу по-стариковски.
Вот раньше если хочешь узнать как работает штука - читаешь её инструкцию. Т.е. потребляешь информацию из исходного компетентного источника.
Сейчас же на любой чих все дружно начинают генерировать контент, собирать подписки, лайки, делиться... Чем? Многократно искажённой и переработанной информацией, которая как была доступна в источнике, так и продолжает.
Watchtower прислал уведомление, что не может проверить обновления образов и что он получает отлуп по HTTP 403. Сразу стало всё понятно. Пошёл на сайт докера, нашел раздел про настройку прокси, прочитал, настроил. Ни тебе драмы, ни эмоций, ни статьи на полчаса чтения, ни сотни вне всякого сомнения ценных комментариев. Совсем не в духе web 2.0...
А докеру спасибо что не даёт забывать, что наличие альтернатив критически важно.
Можно попробовать использовать этот скрипт (https://github.com/StasPlov/docker-unlock)
Подключил зеркало как в инструкции, но не хочет качать образы из приватного репо
Как заставить Docker работать в России и Беларуси (самое простое и быстрое решение)