Рейтинг:0

Общесистемный вход в Docker?

флаг ua

Есть ли способ зарегистрировать всю машину / демон Docker в реестре?

Все, что я вижу о входе в систему докеров и различных помощниках по учетным данным ~/.докер/config.json, то есть для каждого пользователя.

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

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

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

Рейтинг:3
флаг co

На ум приходят три варианта:

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

  2. Если у всех есть доступ к sudo, запускайте команды docker из sudo, включая логин. Учетные данные будут храниться под именем пользователя root. ~/.докер/config.json

  3. Создайте свой собственный помощник по учетным данным, который просто выводит логин на хост. Интерфейс помощника по учетным данным довольно прост, 4 операции (сохранение, получение, список, стирание), которые можно реализовать в сценарии оболочки. А для входа в систему вам, вероятно, понадобится только операция get.

Этот вспомогательный сценарий учетных данных может выглядеть как сценарий с именем docker-credential-ваш-помощник (куда твой помощник может быть именем по вашему выбору):

#!/бин/ш

ваш_реестр ='
{ "ServerURL": "ваш-реестр",
  "Имя пользователя": "ваш-пользователь",
  «Секрет»: «ваш пропуск»
}
'

если [ "$1" = "получить" ]; тогда
  прочитать имя хоста
  case "$hostname" в
    ваш-реестр)
      эхо "${ваш_реестр}"
      выход 0
      ;;
  эсак
Элиф ["$1" = "список"]; тогда
  echo "ваш-реестр"
фи
# все остальное не обрабатывается
выход 1

Сделайте этот файл исполняемым и поместите его в путь. Тогда каждый пользователь ~/.докер/config.json будет иметь запись помощника по учетным данным (обратите внимание, что докер-учетные- не входит в этот файл, только часть имени файла после этого):

{
  "credHelpers": {
    "ваш-хозяин": "ваш-помощник"
  }
}

Ответить или комментировать

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