Sık sorulan sorular-Azure Container Registry

Bu makalede, Azure Container Registry hakkında sık sorulan sorular ve bilinen sorunlar ele alınmaktadır.

Kayıt defteri sorunlarını giderme kılavuzu için bkz.:

Kaynak yönetimi

Kaynak Yöneticisi şablonu kullanarak bir Azure Container Registry oluşturabilir miyim?

Evet. Kayıt defteri oluşturmak için kullanabileceğiniz bir şablon aşağıda verilmiştir.

ACR 'deki görüntüleri taramak için güvenlik güvenlik açığı var mı?

Evet. Azure Güvenlik Merkezi, twistlock ve deniz mavisibelgelerine bakın.

Kubernetes Azure Container Registry yapılandırma Nasıl yaparım??

Azure Kubernetes hizmetiIçin Kubernetes ve adımlar belgelerine bakın.

Bir kapsayıcı kayıt defteri için yönetici kimlik bilgilerini almak Nasıl yaparım??

Önemli

Yönetici Kullanıcı hesabı, tek bir kullanıcı için genellikle test amacıyla kayıt defterine erişmek üzere tasarlanmıştır. Yönetici hesabı kimlik bilgilerini birden çok kullanıcıyla paylaşmayı önermiyoruz. Gözetimsiz senaryolara yönelik kullanıcılar ve hizmet sorumluları için bireysel kimlik önerilir. Bkz. kimlik doğrulamasına genel bakış.

Yönetici kimlik bilgilerini almadan önce, kayıt defterinin yönetici kullanıcısının etkinleştirildiğinden emin olun.

Azure CLı kullanarak kimlik bilgilerini almak için:

az acr credential show -n myRegistry

Azure PowerShell kullanma:

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

Yönetici kimlik bilgilerini bir Kaynak Yöneticisi şablonunda Nasıl yaparım? mi?

Önemli

Yönetici Kullanıcı hesabı, tek bir kullanıcı için genellikle test amacıyla kayıt defterine erişmek üzere tasarlanmıştır. Yönetici hesabı kimlik bilgilerini birden çok kullanıcıyla paylaşmayı önermiyoruz. Gözetimsiz senaryolara yönelik kullanıcılar ve hizmet sorumluları için bireysel kimlik önerilir. Bkz. kimlik doğrulamasına genel bakış.

Yönetici kimlik bilgilerini almadan önce, kayıt defterinin yönetici kullanıcısının etkinleştirildiğinden emin olun.

İlk parolayı almak için:

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

İkinci parolayı almak için:

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

Çoğaltma, Azure CLı veya Azure PowerShell kullanılarak silinmese de, çoğaltmanın silinmesi yasak durumuyla başarısız oluyor

Kullanıcı bir kayıt defteri üzerinde izinlere sahip olduğunda ancak abonelik üzerinde okuyucu düzeyi izinlere sahip olmadığında hata görülür. Bu sorunu çözmek için, kullanıcıya abonelik üzerinde okuyucu izinleri atayın:

az role assignment create --role "Reader" --assignee user@contoso.com --scope /subscriptions/<subscription_id> 

Güvenlik duvarı kuralları başarıyla güncelleştirildi, ancak bunlar etkili olmayacak

Güvenlik duvarı kuralı değişikliklerinin yayılması biraz zaman alır. Güvenlik Duvarı ayarlarını değiştirdikten sonra bu değişikliği doğrulamadan önce lütfen birkaç dakika bekleyin.

Kayıt defteri işlemleri

Docker kayıt defteri HTTP API v2 'ye Nasıl yaparım? erişin?

ACR, Docker kayıt defteri HTTP API v2 'YI destekler. API 'Lere ' de erişilebilir https://<your registry login server>/v2/ . Örnek: https://mycontainerregistry.azurecr.io/v2/

Bir depodaki herhangi bir etiket tarafından başvurulmayan tüm bildirimler silinsin mi Nasıl yaparım??

Bash kullanıyorsanız:

az acr repository show-manifests -n myRegistry --repository myRepository --query "[?tags[0]==null].digest" -o tsv  | xargs -I% az acr repository delete -n myRegistry -t myRepository@%

PowerShell için:

az acr repository show-manifests -n myRegistry --repository myRepository --query "[?tags[0]==null].digest" -o tsv | %{ az acr repository delete -n myRegistry -t myRepository@$_ }

Not

-yOnayı atlamak için Sil komutuna ekleyebilirsiniz.

Daha fazla bilgi için bkz. Azure Container Registry kapsayıcı görüntülerini silme.

Görüntüleri sildikten sonra kayıt defteri kotası kullanımı neden Azaltılmıyor?

Bu durum, temeldeki katmanlara başka kapsayıcı görüntüleri tarafından hala başvuruluyorsa meydana gelebilir. Başvuruları olmayan bir görüntüyü silerseniz, kayıt defteri kullanımı birkaç dakika içinde güncelleştirilir.

Depolama kotası değişikliklerini doğrulamak Nasıl yaparım? mı?

Aşağıdaki Docker dosyasını kullanarak 1GB bir katman içeren bir görüntü oluşturun. Bu, görüntüde kayıt defterindeki başka bir görüntü tarafından paylaşılmayan bir katman olmasını sağlar.

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

Docker CLı kullanarak görüntüyü derleyin ve Kayıt defterinize gönderin.

docker build -t myregistry.azurecr.io/1gb:latest .
docker push myregistry.azurecr.io/1gb:latest

Depolama kullanımının Azure portal arttığını veya CLı kullanarak kullanımı sorgulama yapabilmesini sağlayabilirsiniz.

az acr show-usage -n myregistry

Azure CLı veya portalını kullanarak görüntüyü silin ve güncelleştirilmiş kullanımı birkaç dakika içinde denetleyin.

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

Nasıl yaparım? bir kapsayıcıda CLı çalıştırırken kayıt defterimde kimlik doğrulaması yapılsın mı?

Docker yuvasını bağlayarak Azure CLı kapsayıcısını çalıştırmanız gerekir:

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

Kapsayıcıda şunu yüklemesi docker :

apk --update add docker

Ardından kayıt defterinizde kimlik doğrulaması yapın:

az acr login -n MyRegistry

TLS 1,2 nasıl etkinleştirilir?

Herhangi bir yeni Docker istemcisini (sürüm 18.03.0 ve üzeri) kullanarak TLS 1,2 'yi etkinleştirin.

Önemli

Azure Container Registry 13 Ocak 2020 tarihinden itibaren, sunuculardan ve uygulamalardan gelen tüm güvenli bağlantıların TLS 1,2 kullanması gerekir. TLS 1,0 ve 1,1 desteği kullanımdan kaldırılacak.

Azure Container Registry Içerik güvenini destekliyor mu?

Evet, Docker noçi tümleşik olduğundan ve etkinleştirilemediğinden Azure Container Registry içindeki güvenilir görüntüleri kullanabilirsiniz. Ayrıntılar için bkz. Azure Container Registry Içerik güveni.

Parmak izi dosyası nerede bulunur?

Altında ~/.docker/trust/tuf/myregistry.azurecr.io/myrepository/metadata :

  • Tüm rollerin ortak anahtarları ve sertifikaları (atama rolleri hariç) içinde depolanır root.json .
  • Ortak anahtarlar ve temsili rolünün sertifikaları, üst rolünün JSON dosyasında (örneğin targets.json , targets/releases rol için) depolanır.

Bu ortak anahtarların ve sertifikaların, Docker ve Nodown istemcisi tarafından gerçekleştirilen genel olarak doğrulanması sonrasında doğrulanması önerilir.

Kayıt defteri kaynağını yönetme izni olmadan çekme veya gönderme görüntülerine erişim izni Nasıl yaparım? mı?

ACR, farklı izin düzeyleri sağlayan özel rolleri destekler. Özellikle AcrPull ve AcrPush rolleri, kullanıcıların Azure 'daki kayıt defteri kaynağını yönetme izni olmadan resimleri çekmesini ve/veya gönderemelerine olanak tanır.

  • Azure portal: kayıt defteriniz > Access Control (ıAM)-> Add (rol seçin AcrPull AcrPush ).

  • Azure CLı: aşağıdaki komutu çalıştırarak kayıt defterinin kaynak KIMLIĞINI bulun:

    az acr show -n myRegistry
    

    Daha sonra AcrPull AcrPush bir kullanıcıya veya rolünü atayabilirsiniz (aşağıdaki örnekte kullanır AcrPull ):

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

    Ya da rolü, uygulama KIMLIĞI tarafından tanımlanan bir hizmet sorumlusuna atayın:

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

Atanan e-, daha sonra kayıt defterindeki görüntülere kimlik doğrulaması yapabilir ve bu görüntüleri erişebilir.

  • Kayıt defterine kimlik doğrulaması yapmak için:

    az acr login -n myRegistry 
    
  • Depoları listelemek için:

    az acr repository list -n myRegistry
    
  • Bir görüntü çekmek için:

    docker pull myregistry.azurecr.io/hello-world
    

Yalnızca AcrPull veya AcrPush rolü kullanımıyla, atanan oturum, Azure 'da kayıt defteri kaynağını yönetme iznine sahip değildir. Örneğin, az acr list veya az acr show -n myRegistry kayıt defterini göstermez.

Kayıt defteri için otomatik görüntü karantinasını etkinleştirmek Nasıl yaparım? mı?

Görüntü karantina Şu anda ACR 'nin önizleme özelliğidir. Yalnızca güvenlik taramasını başarıyla geçen görüntülerin normal kullanıcılara görünür olması için bir kayıt defterinin karantina modunu etkinleştirebilirsiniz. ayrıntılar için bkz. acr GitHub deposu.

Anonim çekme erişimini nasıl etkinleştirebilirim?

anonim (kimliği doğrulanmamış) çekme erişimi için bir Azure kapsayıcı kayıt defteri ayarlamak, standart ve Premium hizmet katmanlarındakullanılabilen bir önizleme özelliğidir.

Anonim çekme erişimini etkinleştirmek için Azure CLı (sürüm 2.21.0 veya üzeri) kullanarak bir kayıt defteri güncelleştirin ve --anonymous-pull-enabled parametreyi az ACR Update komutuna geçirin:

az acr update --name myregistry --anonymous-pull-enabled

' İ ayarlayarak dilediğiniz zaman anonim çekme erişimini devre dışı bırakabilirsiniz --anonymous-pull-enabled false .

Not

  • Anonim çekme işlemini denemeden önce, docker logout tüm mevcut Docker kimlik bilgilerini temizlemenizi sağlamak için öğesini çalıştırın.
  • Yalnızca veri düzlemi işlemleri, kimliği doğrulanmamış istemciler tarafından kullanılabilir.
  • Kayıt defteri, yüksek oranda kimliği doğrulanmamış isteklerin azaledebilir.
  • Şu anda, coğrafi olarak çoğaltılan kayıt defteri bölgelerinde anonim çekme erişimi desteklenmez.

Uyarı

Anonim çekme erişimi şu anda kayıt defterindeki tüm depolar için geçerlidir. Depoda kapsamlı belirteçlerikullanarak depo erişimini yönetiyorsanız, tüm kullanıcıların anonim çekme için etkinleştirilen bir kayıt defterindeki depolardan çekeceğini unutmayın. Anonim çekme erişimi etkinleştirildiğinde belirteçleri silmenizi öneririz.

Dağıtılabilir olmayan katmanları bir kayıt defterine itmi Nasıl yaparım??

Bir bildirimde dağıtılabilir olmayan bir katman, içeriğin getirileceği bir URL parametresi içerir. Dağıtılabilir katman gönderimleri etkinleştirmek için bazı olası kullanım durumları, ağ kısıtlı kayıt defterleri, kısıtlı erişime sahip AIR-gapped kayıt defterleri veya internet bağlantısı olmayan kayıt defterleri için kullanılır.

Örneğin, bir VM 'nin yalnızca Azure Container Kayıt defterinizden görüntü çekebilmesi için NSG kurallarınızı ayarladıysanız, Docker yabancı/dağıtılabilir olmayan katmanlar için hatalara sahip olur. örneğin, bir Windows Server çekirdek görüntüsü, bildiriminde Azure container registry 'ye yabancı katman başvuruları içerir ve bu senaryoya çekme işlemi başarısız olur.

Dağıtılabilir katmanların göndermeyi etkinleştirmek için:

  1. daemon.json /etc/docker/ Linux konaklarında ve üzerinde bulunan Windows sunucuda bulunan dosyayı düzenleyin C:\ProgramData\docker\config\daemon.json . Dosyanın daha önce boş olduğunu varsayarsak, aşağıdaki içerikleri ekleyin:

    {
      "allow-nondistributable-artifacts": ["myregistry.azurecr.io"]
    }
    

    Not

    Değer, virgülle ayrılmış bir kayıt defteri adresleri dizisidir.

  2. Dosyayı kaydedin ve kapatın.

  3. Docker 'ı yeniden başlatın.

Görüntüleri listedeki kayıt defterlerine gönderdiğinizde, dağıtılabilir olmayan katmanlar kayıt defterine gönderilir.

Uyarı

Dağıtılabilir yapıtlar genellikle ve nerede dağıtılabilecekleri ve paylaşılabileceği konusunda kısıtlamalar vardır. Yapıtları yalnızca özel kayıt defterlerine göndermek için bu özelliği kullanın. Dağıtılabilir olmayan yapıtları yeniden dağıtımı kapsayan koşullarla uyumlu olduğunuzdan emin olun.

Tanılama ve durum denetimleri

Sistem durumunu denetle `az acr check-health`

Ortak ortam ve kayıt defteri sorunlarını gidermek için bkz. Azure Container Registry 'nin sistem durumunu denetleme.

Docker Pull şu hatayla başarısız oldu: net/http: bağlantı beklenirken istek iptal edildi (üst bilgi beklerken zaman aşımı aşıldı)

  • Bu hata geçici bir sorun ise, yeniden deneme başarılı olur.
  • docker pullSürekli başarısız olursa Docker daemon ile ilgili bir sorun olabilir. Bu sorun genellikle Docker Daemon yeniden başlatılarak azaltılabilir.
  • Docker Daemon 'ı yeniden başlattıktan sonra bu sorunu görmeye devam ederseniz, sorun makinede bazı ağ bağlantısı sorunları olabilir. Makinedeki genel ağın sağlıklı olup olmadığını denetlemek için uç nokta bağlantısını test etmek üzere aşağıdaki komutu çalıştırın. az acrBu bağlantı denetimi komutunu içeren en düşük sürüm 2.2.9 ' dir. Daha eski bir sürüm kullanıyorsanız Azure CLı 'nizi yükseltin.
az acr check-health -n myRegistry
  • Tüm Docker istemci işlemlerinde her zaman bir yeniden deneme mekanizması olmalıdır.

Docker çekme yavaş

Makine ağ indirme hızınızı sınamak için Bu aracı kullanın. Makine ağı yavaşsa, kayıt defterinizdeki aynı bölgedeki Azure VM 'yi kullanmayı göz önünde bulundurun. Bu genellikle daha hızlı ağ hızına sahip olmanızı sağlar.

Docker Push yavaş

Makine ağ yükleme hızınızı sınamak için Bu aracı kullanın. Makine ağı yavaşsa, kayıt defterinizdeki aynı bölgedeki Azure VM 'yi kullanmayı göz önünde bulundurun. Bu genellikle daha hızlı ağ hızına sahip olmanızı sağlar.

Docker Push başarılı oldu, ancak docker pull hata vererek başarısız oluyor: kimlik doğrulaması gerekli

Bu hata, varsayılan olarak etkin olan Docker Daemon 'ın Red Hat sürümünde ortaya çıkabilir --signature-verification . aşağıdaki komutu çalıştırarak Red Hat Enterprise Linux (rhel) veya fedora için docker daemon seçeneklerini kontrol edebilirsiniz:

grep OPTIONS /etc/sysconfig/docker

Örneğin, Fedora 28 sunucusu aşağıdaki Docker Daemon seçeneklerine sahiptir:

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

--signature-verification=falseEksik ile docker pull Şuna benzer bir hata ile başarısız olur:

Trying to pull repository myregistry.azurecr.io/myimage ...
unauthorized: authentication required

Hatayı gidermek için:

  1. --signature-verification=falseDocker Daemon yapılandırma dosyasına seçeneğini ekleyin /etc/sysconfig/docker . Örnek:

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

  2. Aşağıdaki komutu çalıştırarak Docker Daemon hizmetini yeniden başlatın:

    sudo systemctl restart docker.service
    

Ayrıntıları --signature-verification çalıştırılarak bulunabilir man dockerd .

az ACR oturum açma işlemi başarılı ancak Docker şu hatayla başarısız oldu: kimlik doğrulaması gerekli

Örneğin, docker push myregistry.azurecr.io/myimage:latest kayıt defteri kaynak adı büyük harfle veya karışık durumda olsa bile, tüm küçük harfli sunucu URL 'sini kullandığınızdan emin olun myRegistry .

Docker Daemon 'un hata ayıklama günlüklerini etkinleştirin ve alın

dockerd debug Seçeneğiyle başlayın. İlk olarak, mevcut değilse Docker Daemon yapılandırma dosyasını ( /etc/docker/daemon.json ) oluşturun ve şu debug seçeneği ekleyin:

{    
    "debug": true    
}

Sonra, arka plan programını yeniden başlatın. Örneğin, Ubuntu 14,04:

sudo service docker restart

Ayrıntılar Docker belgelerindebulunabilir.

  • Günlükler, sisteminize bağlı olarak farklı konumlarda oluşturulabilir. Örneğin, Ubuntu 14,04 için bu /var/log/upstart/docker.log .
    Ayrıntılar için bkz. Docker belgeleri .

  • Docker for Windows için günlükler% LOCALAPPDATA%/docker/altında oluşturulur. Ancak, henüz tüm hata ayıklama bilgilerini içermeyebilir.

    Tüm Daemon günlüğüne erişmek için bazı ek adımlara ihtiyacınız olabilir:

    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
    

    Şimdi, çalıştıran VM 'nin tüm dosyalarına erişiminiz var dockerd . Günlük /var/log/docker.log .

Yeni Kullanıcı izinleri güncelleştirmeden hemen sonra etkili olmayabilir

Bir hizmet sorumlusuna yeni izinler (yeni roller) verdiğinizde, değişiklik hemen etkili olmayabilir. Olası iki neden vardır:

  • rol atama gecikmesi Azure Active Directory. Normalde hızlıdır, ancak yayma gecikmesi nedeniyle birkaç dakika sürebilir.

  • ACR belirteç sunucusu 'nda izin gecikmesi. Bu işlem 10 dakikaya kadar sürebilir. Azaltmak için, docker logout 1 dakika sonra aynı kullanıcıyla yeniden kimlik doğrulaması yapabilir ve sonra tekrar kimlik doğrulaması yapabilirsiniz:

    docker logout myregistry.azurecr.io
    docker login myregistry.azurecr.io
    

Şu anda ACR, kullanıcılar tarafından giriş çoğaltmasını silmeyi desteklemez. Geçici çözüm, ana çoğaltma oluşturma işlemini şablona eklemek, ancak "condition": false aşağıda gösterildiği gibi ekleyerek oluşturmayı atlar:

{
    "name": "[concat(parameters('acrName'), '/', parameters('location'))]",
    "condition": false,
    "type": "Microsoft.ContainerRegistry/registries/replications",
    "apiVersion": "2017-10-01",
    "location": "[parameters('location')]",
    "properties": {},
    "dependsOn": [
        "[concat('Microsoft.ContainerRegistry/registries/', parameters('acrName'))]"
     ]
},

Kimlik doğrulama bilgileri doğrudan REST API çağrılarında doğru biçimde verilmez

InvalidAuthenticationInfoÖzellikle, curl -L --location (yeniden yönlendirmeleri izlemek için) aracıyla birlikte kullanarak bir hatayla karşılaşabilirsiniz. Örneğin, curl WITH -L seçeneği ve temel kimlik doğrulaması kullanarak blobu getirme:

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

Aşağıdaki yanıta neden olabilir:

<?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>

Kök nedeni, bazı curl uygulamaların özgün istekten gelen üstbilgilere yeniden yönlendirmeleri takip eden bir nedendir.

Sorunu çözmek için, başlıkları olmadan yeniden yönlendirmeleri el ile izlemeniz gerekir. Yanıt üst bilgilerini -D - curl ' i seçeneğiyle yazdırın ve sonra ayıklayın: Location

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

Azure portal neden tüm depolarımı veya etiketlerimi listelemez?

Microsoft Edge/ie tarayıcısını kullanıyorsanız, en fazla 100 depo veya etiket görebilirsiniz. Kayıt defterinizde 100 ' den fazla depo veya etiket varsa, bunları listelemek için Firefox veya Chrome tarayıcısı kullanmanızı öneririz.

Azure portal depo veya etiket getirme neden başarısız oluyor?

Tarayıcı, sunucuya depo veya etiket getirme isteğini gönderemeyebilir. Şöyle çeşitli nedenlerle şunlar olabilir:

  • Ağ bağlantısı olmaması
  • Güvenlik Duvarı
  • Yalnızca özel erişime izin veren bir kayıt defteri için ortak bir ağdan Portal kullanma
  • Ad engelleyiciler
  • DNS hataları

Lütfen ağ yöneticinize başvurun veya ağ yapılandırmanızı ve bağlantınızı kontrol edin. az acr check-health -n yourRegistryOrtamınızın Container Registry bağlanıp bağlanamadıysanız emin olmak Için Azure CLI 'nizi kullanarak çalıştırmayı deneyin. Ayrıca, eski tarayıcı önbelleğinizi veya tanımlama bilgilerini önlemek için tarayıcınızda bir veya özel oturum da deneyebilirsiniz.

Neden çekme veya gönderim isteği izin verilmeyen işlemle başarısız oluyor?

İşlemlere izin verilmeyen bazı senaryolar aşağıda verilmiştir:

  • Klasik kayıt defterleri artık desteklenmiyor. Lütfen az ACR Update veya Azure Portal kullanarak desteklenen bir hizmet katmanına yükseltin.
  • Resim veya depo silinemeyebilir veya güncelleştirilemeyebilir. Geçerli öznitelikleri görüntülemek için az ACR Show Repository komutunu kullanabilirsiniz.
  • Görüntü karantinada ise bazı işlemlere izin verilmiyor. Karantinaya almak hakkında daha fazla bilgi alın.
  • Kayıt defteriniz depolama sınırına ulaşmış olabilir.

Depo biçimi geçersiz veya desteklenmiyor

Depo işlemlerde depo adı belirtirken "desteklenmeyen depo biçimi", "geçersiz biçim" veya "istenen veriler yok" gibi bir hatayla karşılaştıysanız adın yazımını ve büyük/küçük harflerini denetleyin. Geçerli depo adları yalnızca küçük harf alfasayısal karakterler, nokta, tire, alt çizgi ve eğik çizgi içerebilir.

Tam depo adlandırma kuralları için bkz. Open Container Initiative Distribution Specification.

Nasıl yaparım? http izlemeleri toplayan Windows?

Önkoşullar

Windows kapsayıcıları

Docker ara sunucusunu 127.0.0.1:8888 olarak yapılandırma

Linux kapsayıcıları

Docker vm sanal anahtarının ip'sini bulun:

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

Önceki komutun çıktısı ve 8888 bağlantı noktası (örneğin, 10.0.75.1:8888) için Docker ara sunucusunu yapılandırma

Görevler

Nasıl yaparım? toplu iptal çalıştırmaları var mı?

Aşağıdaki komutlar, belirtilen kayıt defterinde çalışan tüm görevleri iptal eder.

az acr task list-runs -r $myregistry --run-status Running --query '[].runId' -o tsv \
| xargs -I% az acr task cancel-run -r $myregistry --run-id %

Nasıl yaparım? az acr build komutuna .git klasörünü eklemek mi?

Komutuna yerel bir kaynak klasör az acr build geçersiniz, klasör varsayılan olarak karşıya yüklenen .git paketin dışındadır. Aşağıdaki ayar ile .dockerignore bir dosya oluşturabilirsiniz. Komutuna, karşıya yüklenen pakette altındaki .git tüm dosyaları geri yüklemesini söyler.

!.git/**

Bu ayar komutu için de az acr run geçerlidir.

Görevler Kaynak tetikleyicileri için GitLab'i destekliyor mu?

Şu anda Kaynak tetikleyicileri için GitLab'i desteklemez.

Görevler hangi git deposu yönetim hizmetini destekler?

Git hizmeti Kaynak bağlamı El ile derleme Commit tetikleyicisi aracılığıyla otomatik derleme
GitHub https://github.com/user/myapp-repo.git#mybranch:myfolder Evet Yes
Azure Repos https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder Yes Yes
GitLab https://gitlab.com/user/myapp-repo.git#mybranch:myfolder Yes Hayır
BitBucket https://user@bitbucket.org/user/mayapp-repo.git#mybranch:myfolder Yes Hayır

Hata İletisi Çalıştırma Sorunlarını Giderme

Hata iletisi Sorun giderme kılavuzu
VM için erişim yapılandırılmamış, bu nedenle hiçbir abonelik bulunamadı ACR Görevi'nizi az login --identity kullanıyorsanız bu durumla karşınıza olabilir. Bu geçici bir hatadır ve Yönetilen Kimliğinizin rol ataması yayılmazsa oluşur. Yeniden denemenin çalışmadan önce birkaç saniye beklemesi.

CI/CD tümleştirmesi

Sonraki adımlar