Puncte:0

Conectare la Docker la nivel de sistem?

drapel ua

Există vreo modalitate de a conecta o întreagă mașină/daemon Docker într-un registru?

Tot ceea ce văd despre autentificarea docker și diversele acreditări proprietare pe care le folosește ~/.docker/config.json, adică este per-utilizator.

Am o situație în care aș dori să scot imagini dintr-un registru privat; mai multe persoane au atât acces sudo arbitrar pe acele mașini și ar trebui să poată folosi Docker împotriva registrului nostru.

Deoarece accesul Docker ar trebui oricum citit ca acces rădăcină la o mașină (adică acreditările utilizatorului nu sunt reciproc sigure dacă pot rula Docker), iar accesul sudo este același, dar direct, aș dori doar să trec la urmărire și să înregistrez întreaga mașină. fără ca fiecare utilizator să fie nevoit să sară printre cercuri.

Aș putea oferi un fișier pe care toată lumea să-l poată conecta config.json, dar aș prefera să fie îngrijit de la prima conectare pe fiecare mașină.

Puncte:3
drapel co

Trei opțiuni îmi vin în minte:

  1. Nu faceți imaginea privată și, în schimb, permiteți oricui să tragă imaginea care poate accesa serverul de registry.Acest lucru este destul de comun în medii, deoarece imaginea ar trebui să conțină numai bibliotecile și binarele pentru a rula aplicația, nu fișiere de configurare, secrete sau date, care ar fi injectate în timpul rulării sau stocate într-un volum.

  2. Dacă toată lumea are acces sudo, executați comenzile docker din sudo, inclusiv autentificarea. Acreditările vor fi stocate sub utilizatorul root ~/.docker/config.json

  3. Creați-vă propriul ajutor de acreditări care doar trimite datele de conectare la gazdă. Interfața de ajutor de acreditări este destul de simplă, 4 operațiuni (stocare, obținere, listare, ștergere) care ar putea fi implementate pe un script shell. Și pentru autentificare, probabil că veți avea nevoie doar de operația de obținere.

Acest script de ajutor pentru acreditări ar putea arăta ca un script numit docker-credential-your-helper (Unde ajutorul tău poate fi un nume la alegerea ta):

#!/bin/sh

your_registry='
{ "ServerURL": "registrul dvs.",
  „Nume utilizator”: „utilizatorul dvs.”,
  „Secret”: „pasul tău”
}
'

if [ "$1" = "obține" ]; atunci
  citește numele de gazdă
  cazul „$hostname” în
    registrul dvs.)
      echo „${your_registry}”
      iesirea 0
      ;;
  esac
elif [ "$1" = "listă" ]; atunci
  ecou „registrul dumneavoastră”
fi
# totul nu este gestionat
iesirea 1

Faceți acel fișier executabil și plasați-l în cale. Apoi ale fiecărui utilizator ~/.docker/config.json ar avea o intrare de ajutor pentru acreditări (rețineți că docker-credential- nu este inclus în acest fișier, doar porțiunea din numele fișierului după aceea):

{
  „credHelpers”: {
    "your-host": "ajutorul tău"
  }
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.