Kayıt defterleri, depolar ve yapıtlar hakkında

Bu makalede, kapsayıcı kayıt defterleri, depolar ve kapsayıcı görüntülerinin ve ilgili yapıtların temel kavramları tanıtılmaktadır.

Kayıt defteri, depolar ve yapıtlar

Kayıt Defteri

Kapsayıcı kayıt defteri , kapsayıcı görüntülerini ve ilgili yapıları depolayan ve dağıtan bir hizmettir. Docker Hub, Docker kapsayıcı görüntülerinin genel kataloğu olarak hizmet veren bir ortak kapsayıcı kayıt defteri örneğidir. Azure Container Registry kullanıcılara, tümleşik kimlik doğrulama, coğrafi çoğaltma , ağ kapatma dağıtımları, özel bağlantı ile sanal ağ yapılandırması, etiket kilitlemeve diğer birçok gelişmiş özelliği içeren kapsayıcı içeriklerini doğrudan denetlemeyle sağlar.

Docker uyumlu kapsayıcı görüntülerine ek olarak, Azure Container Registry HELI grafikleri ve açık kapsayıcı girişimi (OCı) görüntü biçimleri dahil olmak üzere bir dizi içerik yapıtları destekler.

Depo

Depo , aynı ada sahip ancak farklı etiketlere sahip bir kayıt defterindeki kapsayıcı görüntülerinin veya diğer yapıların koleksiyonudur. Örneğin, aşağıdaki üç resim acr-helloworld depoda bulunur:

  • ACR-HelloWorld: en son
  • ACR-HelloWorld: v1
  • ACR-HelloWorld: v2

Depo adlarında ad alanlarıda bulunabilir. Ad alanları, eğik çizgi ile ayrılmış adları kullanarak kuruluşunuzda ilgili depoları ve yapıt sahipliğini tanımlamanızı sağlar. Ancak kayıt defteri, tüm depoları bağımsız olarak değil, bağımsız olarak yönetir. Örnek:

  • Pazarlama/campaign10-18/Web: v2
  • Pazarlama/campaign10-18/API: v3
  • Pazarlama/campaign10-18/email-gönderici: v2
  • Ürün-döndürür/Web-gönderim: 20180604
  • Ürün-döndürür/eski-tümleştirici: 20180715

Depo adları yalnızca küçük harfli alfasayısal karakterler, nokta, tire, alt çizgi ve eğik çizgi içerebilir.

Tüm depo adlandırma kuralları için bkz. kapsayıcı girişim dağıtım belirtimi.

Yapıt

Bir kayıt defteri içindeki bir kapsayıcı görüntüsü veya diğer yapıtlar, bir veya daha fazla katmana sahiptir ve bir bildirim tarafından tanımlanır. Bu bileşenlerin birbirleriyle ilişkisini anlamak, kayıt defterinizi etkili bir şekilde yönetmenize yardımcı olabilir.

Etiket

Bir görüntünün veya diğer yapıtın etiketi , sürümünü belirtir. Bir depodaki tek bir yapıya bir veya daha fazla etiket atanabilir ve ayrıca "etiketsiz" olabilir. Diğer bir deyişle, görüntünün verileri (katmanları) kayıt defterinde kalacağından, bir görüntüdeki tüm etiketleri silebilirsiniz.

Depo (veya depo ve ad alanı) ve bir etiket bir görüntünün adını tanımlar. Anında iletme veya çekme işleminde adını belirterek bir görüntüyü gönderebilir ve çekebilirsiniz. Etiket, latest Docker komutlarınıza bir tane sağlamazsanız varsayılan olarak kullanılır.

Kapsayıcı görüntülerini etiketleyerek, bunları geliştirmek veya dağıtmak için senaryolarınız tarafından nasıl kılavuzluk edilir. Örneğin, kararlı Etiketler temel görüntülerinizi sürdürmek için, görüntü dağıtmak için de benzersiz Etiketler önerilir. daha fazla bilgi için bkz. kapsayıcı görüntülerini etiketleme ve sürüm oluşturma için Öneriler.

Etiket adlandırma kuralları için Docker belgelerinebakın.

Katman

Kapsayıcı görüntüleri ve yapıtlar bir veya daha fazla katmandanoluşur. Farklı yapıt türleri katmanları farklı şekilde tanımlar. Örneğin, bir Docker kapsayıcı görüntüsünde her katman, görüntüyü tanımlayan Dockerfile içindeki bir satıra karşılık gelir:

Kapsayıcı resminin katmanları

kayıt defteri içindeki Artifacts ortak katmanları paylaşır ve depolama verimliliğini artırır. örneğin, farklı depolardaki birçok görüntüde ortak bir ASP.NET Core temel katman olabilir, ancak bu katmanın yalnızca bir kopyası kayıt defterinde saklanır. Katman paylaşımı, birden çok yapıtı ortak katmanlara paylaştırmayla, katman dağıtımını düğümlere de iyileştirir. zaten bir düğümde bulunan bir görüntü temel olarak ASP.NET Core katmanını içeriyorsa, aynı katmana başvuruda bulunan farklı bir görüntünün sonraki çekme katmanı düğüme aktarılmaz. Bunun yerine, düğüm üzerinde zaten var olan katmana başvurur.

Olası katman işlemesini güvenli yalıtım ve koruma sağlamak için Katmanlar kayıt defterleri arasında paylaşılmaz.

Bildirim

Bir kapsayıcı kayıt defterine gönderilen her kapsayıcı görüntüsü veya yapıtı bir bildirimleilişkilendirilir. İçerik itildiğinde kayıt defteri tarafından oluşturulan bildirim, yapıtları benzersiz bir şekilde tanımlar ve katmanları belirler.

Linux görüntüsü için temel bir bildirim aşağıdakine hello-world benzer şekilde görünür:

{
  "schemaVersion": 2,
  "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
  "config": {
    "mediaType": "application/vnd.docker.container.image.v1+json",
    "size": 1510,
    "digest": "sha256:fbf289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e"
  },
  "layers": [
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 977,
      "digest": "sha256:2c930d010525941c1d56ec53b97bd057a67ae1865eebf042686d2a2d18271ced"
    }
  ]
}

Azure CLı komutu ile bir depo için bildirimleri listeleyebilir az ACR Repository Show-bildirimleri:

az acr repository show-manifests --name <acrName> --repository <repositoryName>

Örneğin, "ACR-HelloWorld" deposu için bildirimleri listeleyin:

az acr repository show-manifests --name myregistry --repository acr-helloworld
[
  {
    "digest": "sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108",
    "tags": [
      "latest",
      "v3"
    ],
    "timestamp": "2018-07-12T15:52:00.2075864Z"
  },
  {
    "digest": "sha256:3168a21b98836dda7eb7a846b3d735286e09a32b0aa2401773da518e7eba3b57",
    "tags": [
      "v2"
    ],
    "timestamp": "2018-07-12T15:50:53.5372468Z"
  },
  {
    "digest": "sha256:7ca0e0ae50c95155dbb0e380f37d7471e98d2232ed9e31eece9f9fb9078f2728",
    "tags": [
      "v1"
    ],
    "timestamp": "2018-07-11T21:38:35.9170967Z"
  }
]

Bildirim Özeti

Bildirimler benzersiz bir SHA-256 karması veya bildirim Özetitarafından tanımlanır. Her resim veya yapıt--etiketlenebilir veya değil, Özeti tarafından tanımlanır. Yapının katman verileri başka bir yapıtla aynı olsa bile Özet değeri benzersizdir. Bu mekanizma, aynı etiketli görüntüleri bir kayıt defterine sürekli olarak göndermenize olanak tanır. Örneğin, myimage:latest her görüntü benzersiz Özet tarafından tanımlandığından, hata vermeden Kayıt defterinize sürekli olarak gönderim yapabilirsiniz.

Çekme işleminde özetini belirterek bir kayıt defterinden yapı çekebilirsiniz. Aynı etiketli bir görüntü daha sonra kayıt defterine gönderilse bile, bazı sistemler Özet tarafından çekilecek şekilde yapılandırılabilir.

Önemli

Aynı etiketlere sahip değiştirilmiş yapıtları sürekli olarak dağıtırsanız, etiketlenmemiş olan ancak kayıt defterinizde boş alan olan "artık" yapıları oluşturabilirsiniz. Resimleri etikete göre listelediğinizde veya görüntülediğinizde etiketlenmemiş görüntüler Azure CLı 'de veya Azure portal gösterilmez. Ancak, katmanları hala mevcut ve kayıt defterinizde alan tüketir. Etiketlenmemiş bir görüntünün silinmesi, bildirim tek bir veya sonuncu olduğunda, belirli bir katmana işaret edildiğinde kayıt defteri alanını serbest bırakır. Etiketlenmemiş görüntüler tarafından kullanılan boşluğu boşaltma hakkında daha fazla bilgi için bkz. Azure Container Registry kapsayıcı görüntülerini silme.

Yapıtı adresleme

Docker veya diğer istemci araçları ile gönderme ve çekme işlemlerine yönelik bir kayıt defteri yapıtı için, tam nitelikli kayıt defteri adını, depo adını (varsa ad alanı yolu dahil) ve yapıt etiketini veya bildirim özetini birleştirin. Bu koşulların açıklamaları için önceki bölümlere bakın.

Etikete göre adres:

Özet olarak adres:

Bir Azure Container Registry 'ye yapıt çekmek veya göndermek için Docker veya diğer istemci araçlarını kullanırken, oturum açma sunucusu adı olarak da bilinen kayıt defteri 'nin tam URL 'sini kullanın. Azure bulutunda, bir Azure Container Registry 'nin tam URL 'SI biçimindedir myregistry.azurecr.io (tümü küçük harfle).

Not

  • Kayıt defteri oturum açma sunucusu URL 'sinde, gibi bir bağlantı noktası numarası belirtemezsiniz myregistry.azurecr.io:443 .
  • latestKomutunuz bir etiketi sağlamazsanız varsayılan olarak etiketi kullanılır.

Etikete göre gönder

Örnekler:

docker push myregistry.azurecr.io/samples/myimage:20210106

docker push myregistry.azurecr.io/marketing/email-sender

Etikete göre Çek

Örnek:

docker pull myregistry.azurecr.io/marketing/campaign10-18/email-sender:v2

Bildirim özetine göre Çek

Örnek:

docker pull myregistry.azurecr.io/acr-helloworld@sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108

Sonraki adımlar

Azure Container Registry 'de kayıt defteri depolama ve desteklenen içerik biçimleri hakkında daha fazla bilgi edinin.

Azure Container Registry görüntüleri gönderme ve çekme hakkında bilgi edinin.