Kapsayıcı görüntülerini kapsayıcı kayıt defterine aktarma
Kapsayıcı görüntülerini Docker komutlarını kullanmadan bir Azure Container Registry 'ye kolayca içeri aktarabilirsiniz (kopyalayabilirsiniz). Örneğin, bir geliştirme kayıt defterindeki görüntüleri bir üretim kayıt defterine aktarın veya temel görüntüleri ortak bir kayıt defterinden kopyalayın.
Azure Container Registry, var olan bir kayıt defterinden görüntüleri ve diğer yapıları kopyalamak için bir dizi yaygın senaryoyu işler:
Ortak bir kayıt defterinden görüntüleri içeri aktarma
Aynı ya da farklı bir Azure aboneliğinde veya kiracıda, başka bir Azure Container Registry 'den Helu 3 grafikleri dahil görüntüleri veya OCı yapılarını içeri aktarın
Azure olmayan özel kapsayıcı kayıt defterinden içeri aktarma
Azure Container Registry 'de görüntü içeri aktarma işlemi Docker CLı komutlarını kullanarak aşağıdaki avantajlara sahiptir:
İstemci ortamınız yerel bir Docker yüklemesine ihtiyaç duymadığından, desteklenen işletim sistemi türünden bağımsız olarak tüm kapsayıcı görüntülerini içeri aktarın.
Multi-Architecture görüntülerini (resmi Docker görüntüleri gibi) içeri aktardığınızda, bildirim listesinde belirtilen tüm mimarilerin ve platformların görüntüleri bir kopyası alınır.
Hedef kayıt defterine erişimin, kayıt defterinin genel uç noktasını kullanması gerekmez.
Sınırlamalar
- İçeri aktarılan bir görüntü için en fazla bildirim sayısı 50 ' dir.
- Ortak bir kayıt defterinden içeri aktarılan bir görüntünün en büyük katman boyutu 2 GiB 'dir.
Kapsayıcı görüntülerini içeri aktarmak için bu makale, Azure CLı 'yı Azure Cloud Shell veya yerel olarak (sürüm 2.0.55 veya üzeri önerilir) çalıştırmanızı gerektirir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.
Not
Birden çok Azure bölgesinde aynı kapsayıcı görüntülerini dağıtmanız gerekirse, Azure Container Registry coğrafi çoğaltmayı da destekler. Bir kayıt defterini coğrafi olarak çoğaltarak (Premium katmanı gerekir), tek bir kayıt defterinden aynı görüntü ve etiket adları ile birden çok bölgeye hizmet veebilirsiniz.
Önemli
İki Azure Kapsayıcı kayıt defterleri arasında görüntü içeri aktarma işleminde yapılan değişiklikler 2021 Ocak 'tan itibaren sunulmuştur:
- Ağ kısıtlamalı bir Azure Container Registry 'ye veya bu bilgisayardan içeri aktarma, kısıtlanmış kayıt defterinin, ağı atlayıp Güvenilen hizmetlere erişmesine izin vermek için gerekir. Varsayılan olarak, ayar etkin olur ve içeri aktarmaya izin verir. Ayar, yeni oluşturulmuş bir kayıt defterinde özel bir uç nokta veya kayıt defteri güvenlik kuralları ile etkin değilse, içeri aktarma başarısız olur.
- İçeri aktarma kaynağı veya hedefi olarak kullanılan mevcut bir ağ kısıtlamalı Azure Container Registry 'de, bu ağ güvenlik özelliğinin etkinleştirilmesi isteğe bağlıdır ancak önerilir.
Önkoşullar
Zaten bir Azure Container kayıt defteriniz yoksa bir kayıt defteri oluşturun. Adımlar için bkz. hızlı başlangıç: Azure CLI kullanarak özel kapsayıcı kayıt defteri oluşturma.
Bir görüntüyü Azure Container Registry 'ye aktarmak için, kimliğinizin hedef kayıt defterine (en az katkıda bulunan rolü veya ımportımage eylemine izin veren özel bir rol) yazma izinleri olması gerekir. Bkz. Azure Container Registry rolleri ve izinleri.
Ortak bir kayıt defterinden içeri aktarma
Docker Hub 'dan içeri aktar
Örneğin, hello-world:latest Docker Hub 'ından Multi-Architecture görüntüsünü myregistry adlı bir kayıt defterine aktarmak için az ACR Import komutunu kullanın. hello-world, Docker Hub 'ından resmi bir görüntü olduğundan, bu görüntü varsayılan library depodadır. Depo adını ve isteğe bağlı olarak Image parametresinin değerine bir etiketi ekleyin --source . (Bir görüntüyü, bir görüntünün belirli bir sürümünü garanti eden etiketi yerine, bildirim özetine göre belirleyebilirsiniz.)
az acr import \
--name myregistry \
--source docker.io/library/hello-world:latest \
--image hello-world:latest
Komutu çalıştırarak bu görüntüyle ilişkili birden fazla bildirimin olduğunu doğrulayabilirsiniz az acr repository show-manifests :
az acr repository show-manifests \
--name myregistry \
--repository hello-world
Docker Hub hesabınızvarsa, Docker Hub 'ından bir görüntü içeri aktarırken kimlik bilgilerini kullanmanızı öneririz. Docker Hub Kullanıcı adını ve parolayı veya kişisel erişim belirtecini parametre olarak geçirin az acr import . Aşağıdaki örnek, Docker Hub tensorflow kimlik bilgilerini kullanarak Docker Hub 'daki depodan ortak bir görüntü içeri aktarır:
az acr import \
--name myregistry \
--source docker.io/tensorflow/tensorflow:latest-gpu \
--image tensorflow:latest-gpu
--username <Docker Hub user name>
--password <Docker Hub token>
Microsoft Container Registry içeri aktar
örneğin, ltsc2019 Microsoft Container Registry depodaki Windows Server Core görüntüsünü içeri aktarın windows .
az acr import \
--name myregistry \
--source mcr.microsoft.com/windows/servercore:ltsc2019 \
--image servercore:ltsc2019
Aynı AD kiracısındaki bir Azure Container Registry 'den içeri aktarma
tümleşik Azure Active Directory izinleri kullanarak aynı AD kiracısındaki bir Azure container kayıt defterinden bir görüntüyü içeri aktarabilirsiniz.
kimliğiniz, kaynak kayıt defterinden (okuyucu rolü) okumak ve hedef kayıt defterine (katkıda bulunan rolü veya ımportımage eylemine izin veren özel bir rol ) aktarmak için Azure Active Directory izinlere sahip olmalıdır.
Kayıt defteri aynı Active Directory kiracısında aynı veya farklı bir Azure aboneliğinde olabilir.
Kaynak kayıt defterine genel erişim devre dışı bırakılmış olabilir. Ortak erişim devre dışıysa, kaynak kayıt defterini kayıt defteri oturum açma sunucusu adı yerine kaynak KIMLIĞIYLE belirtin.
Kaynak kayıt defteri ve/veya hedef kayıt defteri için özel bir uç nokta veya kayıt defteri güvenlik kuralları uygulanmışsa, kısıtlanmış kayıt defterinin Güvenilen hizmetlerin ağa erişmesine izin verdiğinden emin olun.
Aynı abonelikteki bir kayıt defterinden içeri aktarma
Örneğin, aci-helloworld:latest bir kaynak kayıt defteri mysourceregyıpdan aynı Azure aboneliğindeki myregistry 'e ait görüntüyü içeri aktarın.
az acr import \
--name myregistry \
--source mysourceregistry.azurecr.io/aci-helloworld:latest \
--image aci-helloworld:latest
Aşağıdaki örnek, kayıt defterinin aci-helloworld:latest genel uç noktasına erişimin devre dışı bırakılmasıyla, bir kaynak kayıt defteri mysourceregyımonu myregistry 'e aktarır. Kaynak kayıt defterinin parametresi ile kaynak KIMLIĞINI sağlayın --registry . --sourceParametresinin kayıt defteri oturum açma sunucusu adını değil yalnızca kaynak depoyu ve etiketi belirttiğinden emin olun.
az acr import \
--name myregistry \
--source aci-helloworld:latest \
--image aci-helloworld:latest \
--registry /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceResourceGroup/providers/Microsoft.ContainerRegistry/registries/mysourceregistry
Aşağıdaki örnek, bir görüntüyü etiketi yerine manifest Digest (SHA-256 karması, olarak temsil edilir) ile içe aktarır sha256:... :
az acr import \
--name myregistry \
--source mysourceregistry.azurecr.io/aci-helloworld@sha256:123456abcdefg
Farklı bir abonelikteki kayıt defterinden içeri aktarma
Aşağıdaki örnekte, mysourceregbakanlığı aynı Active Directory kiracısındaki myregistry 'den farklı bir abonelikte yer verilir. Kaynak kayıt defterinin parametresi ile kaynak KIMLIĞINI sağlayın --registry . --sourceParametresinin kayıt defteri oturum açma sunucusu adını değil yalnızca kaynak depoyu ve etiketi belirttiğinden emin olun.
az acr import \
--name myregistry \
--source samples/aci-helloworld:latest \
--image aci-hello-world:latest \
--registry /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceResourceGroup/providers/Microsoft.ContainerRegistry/registries/mysourceregistry
Hizmet sorumlusu kimlik bilgilerini kullanarak bir kayıt defterinden içeri aktarma
Tümleşik Active Directory izinleri kullanarak erişemeyen bir kayıt defterinden içeri aktarmak için, kaynak kayıt defterine hizmet sorumlusu kimlik bilgilerini (varsa) kullanabilirsiniz. Kaynak kayıt defterine ACRPull erişimi olan Active Directory hizmet sorumlusunun AppID 'sini ve parolasını sağlayın. Hizmet sorumlusu kullanmak, derleme sistemleri ve görüntüleri kayıt defterinize aktarması gereken diğer katılımsız sistemler için yararlıdır.
az acr import \
--name myregistry \
--source sourceregistry.azurecr.io/sourcerrepo:tag \
--image targetimage:tag \
--username <SP_App_ID> \
--password <SP_Passwd>
Farklı bir AD kiracısındaki Azure Container Registry 'den içeri aktarma
farklı bir Azure Active Directory kiracısındaki bir Azure container registry 'den içeri aktarmak için, kaynak kayıt defteri 'ni oturum açma sunucusu adına göre belirtin ve kayıt defterine çekme erişimini etkinleştiren kimlik bilgilerini sağlayın.
Kullanıcı adı ve parolayla çapraz kiracı içeri aktarma
Örneğin, Depo kapsamlı bir belirteç ve parola veya kaynak kayıt defterine ACRPull erişimi olan bir Active Directory hizmet sorumlusu için AppID ve parola kullanın.
az acr import \
--name myregistry \
--source sourceregistry.azurecr.io/sourcerrepo:tag \
--image targetimage:tag \
--username <SP_App_ID> \
--password <SP_Passwd>
Erişim belirteciyle çapraz kiracı içeri aktarma
Kaynak kiracısında kayıt defteri izinlerine sahip bir kimlik kullanarak kaynak kayıt defterine erişmek için, bir erişim belirteci alabilirsiniz:
# Login to Azure CLI with the identity, for example a user-assigned managed identity
az login --identity --username <identity_ID>
# Get access token returned by `az account get-access-token`
az account get-access-token
Hedef kiracıda erişim belirtecini komuta bir parola olarak geçirin az acr import . Kaynak kayıt defteri, oturum açma sunucusu adı ile belirtilir. Bu komutta hiçbir Kullanıcı adının gerekli olmadığına dikkat edin:
az acr import \
--name myregistry \
--source sourceregistry.azurecr.io/sourcerrepo:tag \
--image targetimage:tag \
--password <access-token>
Azure olmayan özel kapsayıcı kayıt defterinden içeri aktarma
Kayıt defterine çekme erişimini etkinleştiren kimlik bilgilerini belirterek Azure olmayan özel bir kayıt defterinden görüntü içeri aktarın. Örneğin, özel bir Docker kayıt defterinden bir görüntü çekin:
az acr import \
--name myregistry \
--source docker.io/sourcerepo/sourceimage:tag \
--image sourceimage:tag \
--username <username> \
--password <password>
Sonraki adımlar
Bu makalede, kapsayıcı görüntülerini genel bir kayıt defterine veya başka bir özel kayıt defterinden Azure Container Registry 'ye aktarma hakkında bilgi edindiniz.
- Ek görüntü içeri aktarma seçenekleri için, az ACR Import komut başvurusuna bakın.
Görüntü içeri aktarma, içeriği farklı bir Azure bölgesindeki, abonelikte veya Azure AD kiracısındaki bir kapsayıcı kayıt defterine taşımanıza yardımcı olabilir. Daha fazla bilgi için bkz. kapsayıcı kayıt defterini el ile başka bir bölgeye taşıma.
Ağ kısıtlamalı bir kapsayıcı kayıt defterinden yapıt dışarı aktarmayı devre dışı bırakmayı öğrenin.