Azure Container Registry ile genel içeriği yönetme

Bu makale, Docker Hub'daki kapsayıcı görüntüleri gibi genel içeriğin kopyalarını korumak için Azure kapsayıcı kayıt defteri gibi yerel bir kayıt defteri kullanmaya yönelik uygulamalara ve iş akışlarına genel bir bakış sağlar.

Genel içerikle ilgili riskler

Ortamınızın genel kapsayıcı görüntüleri, Helm grafikleri, Açık İlke Aracısı (OPA) ilkeleri veya diğer yapıtlar gibi genel içeriğe bağımlılıkları olabilir. Örneğin, nginx'i hizmet yönlendirmesi için veya doğrudan Docker Hub'dan veya docker build FROM alpine başka bir genel kayıt defterinden görüntü çekerek çalıştırabilirsiniz.

Uygun denetimler olmadan, genel kayıt defteri içeriğine bağımlılıklar olması görüntü geliştirme ve dağıtım iş akışlarınıza riskler verebilir. Riskleri azaltmak için, mümkün olduğunda genel içeriğin yerel kopyalarını saklayın. Ayrıntılar için Open Container Initiative bloguna bakın.

Docker Hub ile kimlik doğrulaması yapma

İlk adım olarak, şu anda derleme veya dağıtım iş akışının bir parçası olarak Docker Hub'dan genel görüntüleri çekiyorsanız, anonim çekme isteğinde bulunmak yerine Docker Hub hesabı kullanarak kimlik doğrulaması yapmanızı öneririz.

Sık sık anonim çekme isteklerinde bulunurken, bu hataları önlemek için Docker Hub'a ERROR: toomanyrequests: Too Many Requests. benzer Docker hataları veya You have reached your pull rate limit. Docker Hub'da Kimlik Doğrulaması görebilirsiniz.

Not

2 Kasım 2020'den itibaren indirme hızı sınırları, Docker Ücretsiz Plan hesaplarından Docker Hub'a yapılan anonim ve kimliği doğrulanmış istekler için geçerlidir ve sırasıyla IP adresi ve Docker Kimliği ile uygulanır.

Çekme isteklerinizin sayısını tahmin ederken, bulut sağlayıcısı hizmetleri kullanılırken veya bir şirket NAT'sinin arkasında çalışırken, ip adreslerinin bir alt kümesi olarak docker Hub'a toplu olarak birden çok kullanıcının sunulacağını göz önünde bulundurun. Docker Hub'a yapılan isteklere Docker ücretli hesap kimlik doğrulaması eklenmesi, hız sınırı azaltma nedeniyle olası hizmet kesintilerini önler.

Ayrıntılar için bkz . Docker fiyatlandırması ve abonelikleri ile Docker Hizmet Koşulları.

Docker Hub erişim belirteci

Docker Hub, Docker Hub'da kimlik doğrulaması yaparken Docker parolasına alternatif olarak kişisel erişim belirteçlerini destekler. Docker Hub'dan görüntü çeken otomatik hizmetler için belirteçler önerilir. Farklı kullanıcılar veya hizmetler için birden çok belirteç oluşturabilir ve artık gerekli olmadığında belirteçleri iptal edebilirsiniz.

Belirteç kullanarak kimlik doğrulaması docker login yapmak için komut satırındaki parolayı atlayın. Parola istendiğinde, bunun yerine belirteci girin. Docker Hub hesabınız için iki öğeli kimlik doğrulamasını etkinleştirdiyseniz, Docker CLI'dan oturum açarken kişisel erişim belirteci kullanmanız gerekir.

Azure hizmetlerinden kimlik doğrulaması

App Service ve Azure Container Instances gibi çeşitli Azure hizmetleri, kapsayıcı dağıtımları için Docker Hub gibi genel kayıt defterlerinden görüntü çekmeyi destekler. Docker Hub'dan görüntü dağıtmanız gerekiyorsa, Docker Hub hesabı kullanarak kimlik doğrulaması yapmak için ayarları yapılandırmanızı öneririz. Örnekler:

App Service

  • Görüntü kaynağı: Docker Hub
  • Depo erişimi: Özel
  • Oturum açma: <Docker Hub kullanıcı adı>
  • Parola: <Docker Hub belirteci>

Ayrıntılar için bkz . App Service'te Docker Hub kimliği doğrulanmış çekmeler.

Azure Container Instances

  • Görüntü kaynağı: Docker Hub veya diğer kayıt defteri
  • Görüntü türü: Özel
  • Görüntü kayıt defteri oturum açma sunucusu: docker.io
  • Görüntü kayıt defteri kullanıcı adı: <Docker Hub kullanıcı adı>
  • Görüntü kayıt defteri parolası: <Docker Hub belirteci>
  • Resim: docker.io/< repo name>:<tag>

Yapıt Önbelleğini genel içeriği kullanacak şekilde yapılandırma

Genel içerik kullanmak için en iyi yöntem, kayıt defteri kimlik doğrulaması ile Yapıt Önbelleği özelliğini birleştirmektir. Özel ağlarda bile kapsayıcı yapıtlarınızı Azure Container Registry'nizde önbelleğe almak için Yapıt Önbelleği'ni kullanabilirsiniz. Yapıt Önbelleği'ni kullanmak sizi kayıt defteri hız sınırlarından korumakla kalmaz, aynı zamanda Azure kaynağınıza en yakın bölgeden yapıtları çekmek için Coğrafi olarak çoğaltılmış ACR ile birleştirildiğinde çekme güvenilirliğini önemli ölçüde artırır. Ayrıca özel ağlar, güvenlik duvarı yapılandırması, Hizmet Sorumluları ve daha fazlası dahil olmak üzere ACR'nin sunduğu tüm güvenlik özelliklerini de kullanabilirsiniz. ACR Yapıt Önbelleği ile genel içerik kullanma hakkında tam bilgi için Yapıt Önbelleği öğreticisine bakın.

Azure kapsayıcı kayıt defterine görüntü aktarma

Genel görüntülerin kopyalarını yönetmeye başlamak için, henüz yoksa bir Azure kapsayıcı kayıt defteri oluşturabilirsiniz. Azure CLI, Azure portalı, Azure PowerShell veya diğer araçları kullanarak bir kayıt defteri oluşturun.

Önerilen tek seferlik bir adım olarak temel görüntüleri ve diğer genel içeriği Azure kapsayıcı kayıt defterinize aktarın . Azure CLI'daki az acr import komutu, Docker Hub ve Microsoft Container Registry gibi genel kayıt defterlerinden ve diğer özel kapsayıcı kayıt defterlerinden görüntü içeri aktarmayı destekler.

az acr import yerel bir Docker yüklemesi gerektirmez. Azure CLI'nın yerel yüklemesiyle veya doğrudan Azure Cloud Shell'de çalıştırabilirsiniz. Herhangi bir işletim sistemi türünün, çok mimarili görüntülerin veya Helm grafikleri gibi OCI yapıtlarının görüntülerini destekler.

Kuruluşunuzun gereksinimlerine bağlı olarak, ayrılmış bir kayıt defterine veya paylaşılan kayıt defterindeki bir depoya aktarabilirsiniz.

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

Görüntü başvurularını güncelleştirme

Uygulama görüntülerinin geliştiricileri, kodlarının kendi denetimi altındaki yerel içeriğe başvurduğunu güvence altına almalıdır.

  • Özel kayıt defterini kullanmak için görüntü başvurularını güncelleştirin. Örneğin, FROM baseimage:v1 Dockerfile içindeki bir deyimini FROM myregistry.azurecr.io/mybaseimage:v1
  • Özel kayıt defterini kullanmak için kimlik bilgilerini veya kimlik doğrulama mekanizmasını yapılandırın. Tam mekanizma, kayıt defterine erişmek için kullandığınız araçlara ve kullanıcı erişimini nasıl yönettiğinize bağlıdır.
    • Kayıt defterine erişmek için bir Kubernetes kümesi veya Azure Kubernetes Service kullanıyorsanız kimlik doğrulama senaryolarına bakın.
    • Azure kapsayıcı kayıt defteriyle kimlik doğrulaması seçenekleri hakkında daha fazla bilgi edinin.

Uygulama görüntüsü güncelleştirmelerini otomatikleştirme

Görüntü içeri aktarmayı genişleterek, temel görüntüler güncelleştirildiğinde uygulama görüntüsü derlemelerini otomatikleştirmek için bir Azure Container Registry görevi ayarlayın. Otomatik derleme görevi hem temel görüntü güncelleştirmelerini hem de kaynak kodu güncelleştirmelerini izleyebilir.

Ayrıntılı bir örnek için bkz . Azure Container Registry Görevleri ile genel içeriği kullanma ve koruma.

Not

Önceden yapılandırılmış tek bir görev, bağımlı bir temel görüntüye başvuran her uygulama görüntüsünü otomatik olarak yeniden oluşturabilir.

Sonraki adımlar

  • Azure'da kapsayıcı görüntüleri oluşturmaya, çalıştırmaya, göndermeye ve düzeltme eki uygulamaya ilişkin ACR Görevleri hakkında daha fazla bilgi edinin.
  • Temel görüntüleri ortamınıza güncelleştirmek için otomatikleştirilmiş bir gating iş akışı için bkz . Azure Container Registry Görevleri ile genel içeriği kullanma ve koruma.
  • Görüntü derlemelerini ve güncelleştirmelerini otomatikleştirmeye yönelik daha fazla örnek için ACR Görevleri öğreticilerine bakın.