Szerkesztés

Megosztás a következőn keresztül:


Gyakori kérdések – Azure Container Registry az Azure Stack Hubon

Ez a cikk az Azure Container Registry szolgáltatással kapcsolatos gyakori kérdéseket és ismert problémákat ismerteti.

A beállításjegyzék hibaelhárítási útmutatója:

Erőforrás-kezelés

Létrehozhatok Egy Azure Container Registryt az Azure Stack Hubon Resource Manager-sablonnal?

Igen. Íme egy sablon , amellyel létrehozhat egy beállításjegyzéket. Ez a sablon az Azure nyilvános felhőhöz készült. Ha ezt a sablont az Azure Stack Hubon szeretné használni, módosítsa az API-verziót 2019-05-01-es verzióra, ellenkező esetben nem sikerül üzembe helyezni.

Biztonsági réseket keres a rendszerképek az Azure Container Registryben az Azure Stack Hubon?

Szám Jelenleg nincs integráció az Azure Security Centerrel az Azure Stack Hubon üzembe helyezett regisztrációs adatbázisokhoz. Vannak külső felektől származó és nyílt forráskód lehetőségek, amelyek felhasználhatók a csatlakoztatott vagy leválasztott Azure Stack Hub-üzemelő példányok iránti igény szükségletének kitöltéséhez.

Hogyan Konfigurálja a Kubernetes-t az Azure Container Registry használatával?

Tekintse meg a Kubernetes dokumentációját és az Azure Kubernetes Service lépéseit.

Hogyan lekérni a tárolóregisztrációs adatbázis rendszergazdai hitelesítő adatait?

Fontos

A rendszergazdai felhasználói fiók úgy lett kialakítva, hogy egyetlen felhasználó hozzáférjen a beállításjegyzékhez, főként tesztelési célokra. Nem javasoljuk a rendszergazdai fiók hitelesítő adatainak megosztását több felhasználóval. A fej nélküli forgatókönyvekhez egyéni identitás használata ajánlott a felhasználók és a szolgáltatásnevek számára. Lásd a hitelesítés áttekintését.

Mielőtt rendszergazdai hitelesítő adatokat kap, győződjön meg arról, hogy a beállításjegyzék rendszergazdai felhasználója engedélyezve van.

Hitelesítő adatok lekérése az Azure CLI használatával:

az acr credential show -n myRegistry

Az Azure PowerShell-lel:

Invoke-AzureRmResourceAction -Action listCredentials -ResourceType Microsoft.ContainerRegistry/registries -ResourceGroupName myResourceGroup -ResourceName myRegistry

Hogyan rendszergazdai hitelesítő adatokat lekérni egy Resource Manager-sablonban?

Fontos

A rendszergazdai felhasználói fiók úgy lett kialakítva, hogy egyetlen felhasználó hozzáférjen a beállításjegyzékhez, főként tesztelési célokra. Nem javasoljuk a rendszergazdai fiók hitelesítő adatainak megosztását több felhasználóval. A fej nélküli forgatókönyvekhez egyéni identitás használata ajánlott a felhasználók és a szolgáltatásnevek számára. Lásd a hitelesítés áttekintését.

Mielőtt rendszergazdai hitelesítő adatokat kap, győződjön meg arról, hogy a beállításjegyzék rendszergazdai felhasználója engedélyezve van.

Az első jelszó lekérése:

{
    "password": "[listCredentials(resourceId('Microsoft.ContainerRegistry/registries', 'myRegistry'), '2017-10-01').passwords[0].value]"
}

A második jelszó lekérése:

{
    "password": "[listCredentials(resourceId('Microsoft.ContainerRegistry/registries', 'myRegistry'), '2017-10-01').passwords[1].value]"
}

Hogyan leküldni egy tárolórendszerképet az Azure Container Registryben egy Kubernetes-t futtató leválasztott Azure Stack Hub-üzembe helyezésre?

Gépről gépre történő rendszerképátvitelt végezhet egy helyi hálózaton keresztül egy olyan gépről, amely már rendelkezik a szükséges tárolólemezkép(ek)sel. Megvalósítás:

  1. Először kérje le a szükséges tárolólemezképeket egy internetkapcsolattal rendelkező géppel a Docker CLI és a Docker lekéréses parancsával. További információ: Tárolólemezképek importálása tárolóregisztrációs adatbázisba .

  2. Miután importálta a szükséges rendszerkép(ek)et, a gépet a leválasztott Azure Hub-példány helyére kell szállítania.

  3. A docker-címkével és a Docker leküldéses parancsaival címkézheti és leküldheti a rendszerképet az Azure Stack Hub-adattár helyi Azure Container Registry-adatbázisába.

Regisztrációs adatbázis műveletei

Hogyan hozzáférés a Docker Registry HTTP API V2-hez?

Az Azure Container Registry támogatja a Docker Registry HTTP API V2-t. Az API-k a következő címen https://<your registry login server>/v2/érhetők el: . Példa: https://mycontainerregistry.azsacr.<regionname>.<fqdn>/v2/

Hogyan törölni az összes olyan jegyzékfájlt, amelyekre egy adattár egyik címkéje sem hivatkozik?

Ha bashen van:

az acr manifest list-metadata --name myRepository --registry myRegistry --query "[?tags[0]==null].digest" --output tsv  | xargs -I% az acr repository delete --name myRegistry --image myRepository@%

PowerShell esetén:

az acr manifest list-metadata --name myRepository --registry myRegistry --query "[?tags[0]==null].digest" --output tsv | %{ az acr repository delete --name myRegistry --image myRepository@$_ }

Feljegyzés

A törlési paranccsal kihagyhatja --yes a megerősítést.

További információ: Tárolórendszerképek törlése az Azure Container Registryben.

Miért nem csökken a beállításjegyzék kvótahasználata a rendszerképek törlése után?

Ez a helyzet akkor fordulhat elő, ha a mögöttes rétegekre továbbra is hivatkoznak más tárolólemezképek. Ha hivatkozás nélküli lemezképet töröl, a beállításjegyzék-használat néhány perc múlva frissül.

Hogyan ellenőrizze a tárkvóta változásait?

Hozzon létre egy 1 GB-os réteggel rendelkező képet a következő Docker-fájl használatával. Ez biztosítja, hogy a rendszerkép olyan réteggel rendelkezik, amelyet a beállításjegyzékben lévő többi rendszerkép nem oszt meg.

FROM alpine
RUN dd if=/dev/urandom of=1GB.bin  bs=32M  count=32
RUN ls -lh 1GB.bin

Hozza létre és küldje le a lemezképet a beállításjegyzékbe a Docker CLI használatával.

docker build -t myregistry.azsacr.<regionname>.<fqdn>/1gb:latest .
docker push myregistry.azsacr.<regionname>.<fqdn>/1gb:latest

Látnia kell, hogy a tárterület kihasználtsága növekedett az Azure Stack Hub portálon, vagy lekérdezheti a használatot a parancssori felület használatával.

az acr show-usage -n myregistry

Törölje a rendszerképet az Azure CLI vagy a portál használatával, és ellenőrizze néhány perc alatt a frissített használatot.

az acr repository delete -n myregistry --image 1gb

Hogyan hitelesítést a beállításjegyzékemmel a parancssori felület tárolóban való futtatásakor?

Az Azure CLI-tárolót a Docker-szoftvercsatorna csatlakoztatásával kell futtatnia:

docker run -it -v /var/run/docker.sock:/var/run/docker.sock azuresdk/azure-cli-python:dev

A tárolóban telepítse a következőt docker:

apk --update add docker

Ezután hitelesítés a beállításjegyzékkel:

az acr login -n MyRegistry

Hogyan engedélyezheti a TLS 1.2-t?

Engedélyezze a TLS 1.2-t a legutóbbi Docker-ügyfél (18.03.0-s vagy újabb verzió) használatával.

Fontos

2020. január 13-tól az Azure Container Registry megköveteli a kiszolgálók és alkalmazások összes biztonságos kapcsolatát a TLS 1.2 használatához. A TLS 1.0 és 1.1 támogatása megszűnik.

Támogatja az Azure Stack Hubon található Azure Container Registry a tartalommegbízhatóságot?

Nem, az Azure Stack Hub azure-tárolóregisztrációs adatbázisának jelenlegi kiadása csak a "Standard" termékváltozatot támogatja, és nem támogatja a tartalommegbízhatóságot.

Hogyan hozzáférést biztosít a rendszerképek lekéréséhez vagy leküldéséhez a beállításjegyzék-erőforrás kezeléséhez szükséges engedély nélkül?

Az Azure Container Registry olyan egyéni szerepköröket támogat, amelyek különböző szintű engedélyeket biztosítanak. A szerepkörök lehetővé teszik a felhasználók számára a rendszerképek lekérését és/vagy leküldését anélkül, AcrPull AcrPush hogy a beállításjegyzék-erőforrást az Azure-ban kezelhessék.

  • Azure Stack Hub portál: A beállításjegyzék –> Hozzáférés-vezérlés (IAM) –> Hozzáadás (Válassza ki AcrPull vagy AcrPush válassza ki a szerepkört).

  • Azure CLI: Keresse meg a beállításjegyzék erőforrás-azonosítóját az alábbi parancs futtatásával:

    az acr show -n myRegistry
    

    Ezután hozzárendelheti a szerepkört vagy a AcrPull AcrPush szerepkört egy felhasználóhoz (az alábbi példa a következőket használja AcrPull):

    az role assignment create --scope resource_id --role AcrPull --assignee user@example.com
    

    Vagy rendelje hozzá a szerepkört egy, az alkalmazásazonosítója alapján azonosított szolgáltatásnévhez:

    az role assignment create --scope resource_id --role AcrPull --assignee 00000000-0000-0000-0000-000000000000
    

A hozzárendelt ezután képes hitelesíteni és elérni a rendszerképeket a beállításjegyzékben.

  • Hitelesítés beállításjegyzékben:

    az acr login -n myRegistry 
    
  • Adattárak listázása:

    az acr repository list -n myRegistry
    
  • Kép lekérése:

    docker pull myregistry.azsacr.<regionname>.<fqdn>/hello-world
    

Csak a szerepkör vagy AcrPush a AcrPull szerepkör használata esetén a hozzárendelt nem rendelkezik a beállításjegyzék-erőforrás Azure-beli kezeléséhez szükséges engedéllyel. Például, az acr list vagy az acr show -n myRegistry nem jelenik meg a beállításjegyzék.

Hogyan leküldi a nem terjeszthető rétegeket egy beállításjegyzékbe?

A jegyzékfájl nem terjeszthető rétege olyan URL-paramétert tartalmaz, amelyből a tartalom lekérhető. A nem terjeszthető rétegleküldések engedélyezésének néhány lehetséges felhasználási esete a hálózatra korlátozott nyilvántartások, a korlátozott hozzáférésű légi hozzáférésű nyilvántartások vagy az internetkapcsolattal nem rendelkező adatbázisok.

Ha például NSG-szabályok vannak beállítva, hogy a virtuális gépek csak az Azure-tárolóregisztrációs adatbázisból tudjanak lemezképeket lekérni, a Docker lekéri a külső/nem terjeszthető rétegek hibáit. Egy Windows Server Core-rendszerkép például az Azure Container Registry idegen rétegbeli hivatkozásait tartalmazza a jegyzékben, és ebben a forgatókönyvben nem sikerül lekérni.

A nem terjeszthető rétegek leküldésének engedélyezése:

  1. Szerkessze a daemon.json linuxos gazdagépeken és a Windows Serveren C:\ProgramData\docker\config\daemon.json található /etc/docker/ fájlt. Ha a fájl korábban üres volt, adja hozzá a következő tartalmat:

    {
      "allow-nondistributable-artifacts": ["myregistry.azsacr.<regionname>.<fqdn>"]
    }
    

    Feljegyzés

    Az érték a beállításjegyzék-címek vesszővel elválasztott tömbje.

  2. Mentse és lépjen ki a fájlból.

  3. Indítsa újra a Dockert.

Amikor leküldi a képeket a listában szereplő adatbázisba, a rendszer leküldi a nem terjeszthető rétegeket a beállításjegyzékbe.

Figyelmeztetés

A nem terjeszthető összetevők általában korlátozzák az elosztás és a megosztás módját és helyét. Ez a funkció csak az összetevők magánregisztrációs adatbázisokba való leküldésére használható. Győződjön meg arról, hogy megfelel minden olyan feltételnek, amely a nem terjeszthető összetevők újraelosztására vonatkozik.

Diagnosztikák és állapotellenőrzések

Állapot ellenőrzése az "az acr check-health" használatával

A környezettel és a beállításjegyzéktel kapcsolatos gyakori problémák elhárításához tekintse meg az Azure-tárolóregisztrációs adatbázis állapotának ellenőrzését.

A Docker-lekérés meghiúsul a következő hibával: net/http: a kérés megszakadt a kapcsolatra való várakozás során (a Client.Timeout túllépte a fejlécek várakozása közben)

  • Ha ez a hiba átmeneti probléma, akkor az újrapróbálkozás sikeres lesz.
  • Ha docker pull folyamatosan meghiúsul, akkor probléma lehet a Docker démonnal. A probléma általában a Docker-démon újraindításával hárítható el.
  • Ha a Docker démon újraindítása után is megjelenik ez a probléma, akkor a probléma hálózati csatlakozási problémákat okozhat a géppel. Annak ellenőrzéséhez, hogy a gép általános hálózata kifogástalan-e, futtassa a következő parancsot a végpontkapcsolat teszteléséhez. A kapcsolat-ellenőrzési parancsot tartalmazó minimális az acr verzió a 2.2.9. Frissítse az Azure CLI-t, ha régebbi verziót használ.
az acr check-health -n myRegistry
  • Mindig rendelkeznie kell egy újrapróbálkozási mechanizmussal minden Docker-ügyfélművelethez.

A Docker lekérése lassú

Ezzel az eszközzel tesztelheti a gép hálózati letöltési sebességét.

A Docker leküldése lassú

Ezzel az eszközzel tesztelheti a gép hálózati feltöltési sebességét.

A Docker leküldése sikeres, de a Docker-lekérés sikertelen: nem engedélyezett: hitelesítés szükséges

Ez a hiba a Docker démon Red Hat verziójával fordulhat elő, ahol --signature-verification alapértelmezés szerint engedélyezve van. A Következő parancs futtatásával ellenőrizheti a Red Hat Enterprise Linux (RHEL) vagy Fedora Docker démonbeállításait:

grep OPTIONS /etc/sysconfig/docker

A Fedora 28 Server például a következő docker démonbeállításokat kínálja:

OPTIONS='--selinux-enabled --log-driver=journald --live-restore'

Ha --signature-verification=false hiányzik, docker pull a következőhöz hasonló hibával meghiúsul:

Trying to pull repository myregistry.azsacr.<regionname>.<fqdn>/myimage ...
unauthorized: authentication required

A hiba megoldása:

  1. Adja hozzá a lehetőséget --signature-verification=false a Docker démonkonfigurációs fájlhoz /etc/sysconfig/docker. Példa:

    OPTIONS='--selinux-enabled --log-driver=journald --live-restore --signature-verification=false'

  2. Indítsa újra a Docker démonszolgáltatást a következő parancs futtatásával:

    sudo systemctl restart docker.service
    

A részletek a --signature-verification futtatással man dockerdtekinthetők meg.

az acr login sikeres, de a Docker hibával meghiúsul: jogosulatlan: hitelesítés szükséges

Győződjön meg arról, hogy az összes kisbetűs kiszolgáló URL-címét használja, például akkor is, docker push myregistry.azsacr.<regionname>.<fqdn>/myimage:latestha a beállításjegyzék-erőforrás neve nagybetűs vagy vegyes, például myRegistry.

A Docker-démon hibakeresési naplóinak engedélyezése és lekérése

Kezdje dockerd a debug beállítással. Először hozza létre a Docker démonkonfigurációs fájlt (/etc/docker/daemon.json), ha az nem létezik, és adja hozzá a debug következő lehetőséget:

{    
    "debug": true    
}

Ezután indítsa újra a démont. Például az Ubuntu 14.04-zel:

sudo service docker restart

A részletek a Docker dokumentációjában találhatók.

  • A naplók a rendszertől függően különböző helyeken hozhatók létre. Az Ubuntu 14.04 esetében például az /var/log/upstart/docker.log.
    Részletekért tekintse meg a Docker dokumentációját .

  • A WindowsHoz készült Docker esetében a naplók a %LOCALAPPDATA%/docker/alatt jönnek létre. Előfordulhat azonban, hogy még nem tartalmazza az összes hibakeresési információt.

    A teljes démonnapló eléréséhez szükség lehet néhány további lépésre:

    docker run --privileged -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/bin/docker:/usr/local/bin/docker alpine sh
    
    docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -v /:/host alpine /bin/sh
    chroot /host
    

    Most már hozzáférhet a futó dockerdvirtuális gép összes fájlához. A napló a következő helyen /var/log/docker.logtalálható: .

Előfordulhat, hogy az új felhasználói engedélyek nem lesznek azonnal hatályosak a frissítés után

Ha új engedélyeket (új szerepköröket) ad egy szolgáltatásnévnek, előfordulhat, hogy a módosítás nem lép érvénybe azonnal. Két lehetséges oka lehet:

  • Microsoft Entra szerepkör-hozzárendelés késleltetése. Általában gyors, de a propagálási késleltetés miatt perceket is igénybe vehet.

  • Engedélykésés az Azure Container Registry-jogkivonat-kiszolgálón. Ez akár 10 percet is igénybe vehet. A mérséklés érdekében 1 perc elteltével ismét hitelesíthet docker logout ugyanazzal a felhasználóval:

    docker logout myregistry.azsacr.<regionname>.<fqdn>
    docker login myregistry.azsacr.<regionname>.<fqdn>
    

A hitelesítési információk nem a megfelelő formátumban vannak megadva a közvetlen REST API-hívásokhoz

Előfordulhat, hogy hibát tapasztalInvalidAuthenticationInfo, különösen ha az curl eszközt használja a beállítással --location -L(az átirányítások követéséhez). Például a blob curl beolvasása beállítással és alapszintű hitelesítéssel -L :

curl -L -H "Authorization: basic $credential" https://$registry.azurecr.io/v2/$repository/blobs/$digest

a következő választ eredményezheti:

<?xml version="1.0" encoding="utf-8"?>
<Error><Code>InvalidAuthenticationInfo</Code><Message>Authentication information is not given in the correct format. Check the value of Authorization header.
RequestId:00000000-0000-0000-0000-000000000000
Time:2019-01-01T00:00:00.0000000Z</Message></Error>

A kiváltó ok az, hogy egyes curl implementációk az eredeti kérés fejléceit tartalmazó átirányításokat követnek.

A probléma megoldásához manuálisan kell követnie az átirányításokat a fejlécek nélkül. Nyomtassa ki a válaszfejléceket a -D - következő lehetőséggel, majd bontsa curl ki a Location fejlécet:

redirect_url=$(curl -s -D - -H "Authorization: basic $credential" https://$registry.azurecr.io/v2/$repository/blobs/$digest | grep "^Location: " | cut -d " " -f2 | tr -d '\r')
curl $redirect_url

Miért nem sorolja fel az Azure Stack Hub portál az összes adattárat vagy címkét?

Ha a Microsoft Edge/IE böngészőt használja, legfeljebb 100 tárházat vagy címkét láthat. Ha a beállításjegyzék több mint 100 tárházat vagy címkét tartalmaz, javasoljuk, hogy a Firefox vagy a Chrome böngésző használatával listázhassa az összeset.

Miért nem tudja lekérni az Azure Stack Hub portál az adattárakat vagy címkéket?

Előfordulhat, hogy a böngésző nem tudja elküldeni az adattárak vagy címkék lekérésére vonatkozó kérést a kiszolgálónak. Különböző okok is lehetnek, például:

  • Hálózati kapcsolat hiánya
  • Firewall
  • A portál használata nyilvános hálózatról olyan beállításjegyzékhez, amely csak a privát hozzáférést teszi lehetővé
  • Hirdetésblokkolók
  • DNS-hibák

Forduljon a hálózati rendszergazdához, vagy ellenőrizze a hálózati konfigurációt és a kapcsolatot. az acr check-health -n yourRegistry Futtassa az Azure CLI-t annak ellenőrzéséhez, hogy a környezet képes-e csatlakozni a Tárolóregisztrációs adatbázishoz. Emellett megpróbálhat inkognitó vagy privát munkamenetet is a böngészőben, hogy elkerülje az elavult böngésző-gyorsítótárat vagy cookie-kat.

Miért nem engedélyezett művelettel meghiúsul a lekéréses vagy leküldéses kérelem?

Az alábbiakban néhány olyan esetet talál, ahol a műveletek nem engedélyezettek:

  • A rendszerkép vagy az adattár zárolva lehet, hogy ne lehessen törölni vagy frissíteni. Az az acr show repository paranccsal megtekintheti az aktuális attribútumokat.
  • Egyes műveletek nem engedélyezettek, ha a rendszerkép karanténban van. További információ a karanténról.
  • Előfordulhat, hogy a beállításjegyzék elérte a tárterületkorlátot.

Az adattár formátuma érvénytelen vagy nem támogatott

Ha olyan hibaüzenetet lát, mint a "nem támogatott adattár formátuma", "érvénytelen formátum", vagy "a kért adatok nem léteznek" hibaüzenet jelenik meg, amikor adattárnevet ad meg az adattárműveletekben, ellenőrizze a név helyesírását és esetét. Az érvényes adattárnevek csak kisbetűs alfanumerikus karaktereket, pontokat, kötőjeleket, aláhúzásjeleket és perjeleket tartalmazhatnak.

Hogyan http-nyomkövetéseket gyűjteni Windows rendszeren?

Előfeltételek

Windows-tárolók

Docker-proxy konfigurálása 127.0.0.1:8888-ra

Linux-tárolók

Keresse meg a Docker virtuális gép virtuális kapcsolójának IP-címét:

(Get-NetIPAddress -InterfaceAlias "*Docker*" -AddressFamily IPv4).IPAddress

Konfigurálja a Docker-proxyt az előző parancs és a 8888-os port kimenetére (például 10.0.75.1:8888)

Következő lépések

  • További információ az Azure Container Registryről.