Nyilvános tartalom kezelése az Azure Container Registry használatával

Ez a cikk áttekintést nyújt azokról a gyakorlatokról és munkafolyamatokról, amelyek egy helyi beállításjegyzéket, például egy Azure-tárolóregisztrációs adatbázist használnak a nyilvános tartalom másolatainak, például a Docker Hub tárolólemezképeinek karbantartásához.

Nyilvános tartalommal kapcsolatos kockázatok

A környezet függhet a nyilvános tartalmaktól, például a nyilvános tárolólemezképekhez, a Helm-diagramokhoz, az Open Policy Agent-szabályzatokhoz vagy más összetevőkhez. Előfordulhat például, hogy nginxet futtat a szolgáltatás útválasztásához, vagy docker build FROM alpine közvetlenül a Docker Hubról vagy egy másik nyilvános beállításjegyzékből leküldi a lemezképeket.

Megfelelő vezérlők nélkül a nyilvános beállításjegyzék-tartalomtól való függőségek kockázatot jelenthetnek a rendszerkép-fejlesztési és üzembehelyezési munkafolyamatokra. A kockázatok csökkentése érdekében lehetőség szerint tartsa meg a nyilvános tartalom helyi másolatát. További részletekért tekintse meg az Open Container Initiative blogot.

Hitelesítés a Docker Hubbal

Első lépésként, ha jelenleg nyilvános lemezképeket kér le a Docker Hubról egy buildelési vagy üzembe helyezési munkafolyamat részeként, javasoljuk, hogy névtelen lekéréses kérés helyett egy Docker Hub-fiókkal hitelesítse magát.

Gyakori névtelen lekéréses kérelmek esetén a Docker Hubhoz ERROR: toomanyrequests: Too Many Requests. hasonló vagy You have reached your pull rate limit. hitelesítéssel kapcsolatos Docker-hibák jelenhetnek meg a hibák elkerülése érdekében.

Feljegyzés

2020 . november 2-tól kezdődően a letöltési sebességkorlátok a Docker Hubnak a Docker ingyenes csomagfiókjaiból érkező névtelen és hitelesített kérésekre vonatkoznak, és az IP-cím és a Docker-azonosító érvényes.

A lekéréses kérelmek számának becslésekor vegye figyelembe, hogy a felhőszolgáltatói szolgáltatások használata vagy a vállalati NAT mögötti munka során több felhasználó jelenik meg összesítetten a Docker Hubban az IP-címek részhalmazaként. Ha a Docker-fiókhitelesítést hozzáadja a Docker Hubhoz küldött kérésekhez, azzal elkerülheti a szolgáltatás sebességkorlát-szabályozás miatti esetleges megszakadását.

További részletekért tekintse meg a Docker díjszabását és előfizetéseit , valamint a Docker szolgáltatási feltételeit.

Docker Hub hozzáférési jogkivonat

A Docker Hub támogatja a személyes hozzáférési jogkivonatokat a Docker-jelszó alternatíváiként a Docker Hubhoz való hitelesítéskor. A jogkivonatok olyan automatizált szolgáltatásokhoz ajánlottak, amelyek képeket kérnek le a Docker Hubról. Több jogkivonatot is létrehozhat a különböző felhasználók vagy szolgáltatások számára, és visszavonhatja a jogkivonatokat, ha már nincs rá szükség.

Ha jogkivonat használatával docker login szeretne hitelesíteni, hagyja ki a jelszót a parancssorból. Amikor a rendszer jelszót kér, adja meg helyette a jogkivonatot. Ha engedélyezte a kéttényezős hitelesítést a Docker Hub-fiókjához, a Docker PARANCSSOR-ból való bejelentkezéskor személyes hozzáférési jogkivonatot kell használnia.

Hitelesítés az Azure-szolgáltatásokból

Számos Azure-szolgáltatás, köztük az App Service és az Azure Container Instances támogatja a rendszerképek lekérését nyilvános adatbázisokból, például a Docker Hubból tárolótelepítésekhez. Ha lemezképet kell üzembe helyeznie a Docker Hubon, javasoljuk, hogy konfigurálja a beállításokat a Docker Hub-fiók használatával történő hitelesítéshez. Példák:

App Service

  • Kép forrása: Docker Hub
  • Adattár-hozzáférés: Privát
  • Bejelentkezés: <Docker Hub-felhasználónév>
  • Jelszó: <Docker Hub-jogkivonat>

További információ: Docker Hub által hitelesített lekérések az App Service-ben.

Azure Container Instances

  • Kép forrása: Docker Hub vagy más beállításjegyzék
  • Kép típusa: Privát
  • Rendszerképregisztrációs adatbázis bejelentkezési kiszolgálója: docker.io
  • Képregisztrációs adatbázis felhasználóneve: <Docker Hub-felhasználónév>
  • Képregisztrációs adatbázis jelszava: <Docker Hub-jogkivonat>
  • Kép: docker.io/< repo name>:<tag>

Az Artifact Cache konfigurálása nyilvános tartalom felhasználására

A nyilvános tartalom felhasználásának ajánlott eljárása a beállításjegyzék-hitelesítés és az Artifact Cache szolgáltatás kombinálása. Az Artifact Cache használatával gyorsítótárazhatja a tárolóösszetevőket az Azure Container Registryben még privát hálózatokon is. Az Artifact Cache használata nemcsak védelmet nyújt a beállításjegyzék sebességkorlátjaitól, hanem jelentősen növeli a lekérés megbízhatóságát georeplikált ACR-lel kombinálva, hogy az összetevőket az Azure-erőforráshoz legközelebbi régióból kérje le. Emellett az ACR által kínált összes biztonsági funkciót is használhatja, beleértve a magánhálózatokat, a tűzfalkonfigurációt, a szolgáltatásnéveket stb. A nyilvános tartalmak ACR Artifact Cache-lel való használatáról az Artifact Cache oktatóanyagában olvashat.

Rendszerképek importálása azure-tárolóregisztrációs adatbázisba

A nyilvános rendszerképek másolatainak kezeléséhez létrehozhat egy Azure-tárolóregisztrációs adatbázist, ha még nincs ilyenje. Hozzon létre egy beállításjegyzéket az Azure CLI, az Azure Portal, az Azure PowerShell vagy más eszközök használatával.

Ajánlott egyszeri lépésként importálja az alaprendszerképeket és más nyilvános tartalmakat az Azure-tárolóregisztrációs adatbázisba. Az Az acr import parancs az Azure CLI-ben támogatja a rendszerképek importálását nyilvános adatbázisokból, például a Docker Hubból és a Microsoft Container Registryből, valamint más privát tárolóregisztrációs adatbázisokból.

az acr import nincs szükség helyi Docker-telepítésre. Futtathatja az Azure CLI helyi telepítésével vagy közvetlenül az Azure Cloud Shellben. Bármilyen operációsrendszer-típusú, többarchitektúra-lemezképet vagy OCI-összetevőt, például Helm-diagramot támogat.

A szervezet igényeitől függően importálhat egy dedikált beállításjegyzékbe vagy egy megosztott beállításjegyzék adattárába.

az acr import \
  --name myregistry \
  --source docker.io/library/hello-world:latest \
  --image hello-world:latest \
  --username <Docker Hub username> \
  --password <Docker Hub token>

Képhivatkozások frissítése

Az alkalmazásképek fejlesztőinek gondoskodniuk kell arról, hogy a kódjuk a helyi tartalomra hivatkozik az irányításuk alatt.

  • Frissítse a rendszerkép-hivatkozásokat a privát beállításjegyzék használatára. Például frissítse a FROM baseimage:v1 Docker-fájlban lévő utasítást a következőre: FROM myregistry.azurecr.io/mybaseimage:v1
  • Hitelesítő adatokat vagy hitelesítési mechanizmust konfigurálhat a privát beállításjegyzék használatához. A pontos mechanizmus a beállításjegyzék eléréséhez használt eszközöktől és a felhasználói hozzáférés kezelésének módjától függ.
    • Ha Kubernetes-fürtöt vagy Azure Kubernetes Service-t használ a beállításjegyzék eléréséhez, tekintse meg a hitelesítési forgatókönyveket.
    • További információ az Azure-tárolóregisztrációs adatbázissal történő hitelesítés lehetőségeiről.

Alkalmazáskép-frissítések automatizálása

A rendszerképek importálása során egy Azure Container Registry-feladat beállításával automatizálhatja az alkalmazásrendszerképek összeállítását az alaprendszerképek frissítésekor. Az automatizált buildelési feladatok nyomon követhetik az alaprendszerkép-frissítéseket és a forráskódfrissítéseket is.

Részletes példa: Nyilvános tartalom felhasználása és karbantartása az Azure Container Registry Tasks használatával.

Feljegyzés

Egyetlen előre konfigurált feladat automatikusan újraépítheti az összes alkalmazásrendszerképet, amely függő alaprendszerképre hivatkozik.

Következő lépések