Alıştırma: Azure Container Registry Görevlerini kullanarak kapsayıcı görüntüsü oluşturma ve çalıştırma

Tamamlandı

Bu alıştırmada, aşağıdaki eylemleri gerçekleştirmek için ACR Görevlerini kullanacaksınız:

  • Azure Container Registry (ACR) oluşturma
  • Dockerfile'dan görüntü oluşturma ve gönderme
  • Sonuçları doğrulama
  • Görüntüyü ACR'de çalıştırma

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Hesabınız yoksa https://azure.com/free adresinden ücretsiz deneme için kaydolabilirsiniz.

Azure'da oturum açın ve Cloud Shell'i başlatın

  1. Azure portalında oturum açın ve Cloud Shell'i açın.

    Cloud Shell başlatma düğmesinin konumu.

  2. Kabuk açıldığında Bash ortamını seçin.

    Bash ortamını seçme.

Azure Container Registry oluşturma

  1. Kayıt defteri için bir kaynak grubu oluşturun. Aşağıdaki komutta değerini yakınınızdaki bir konumla değiştirin <myLocation> .

    az group create --name az204-acr-rg --location <myLocation>
    
  2. Temel bir kapsayıcı kayıt defteri oluşturun. Kaynak defteri adı Azure’da benzersiz olmalı ve 5-50 arası alfasayısal karakter içermelidir. Aşağıdaki komutta değerini benzersiz bir değerle değiştirin <myContainerRegistry> .

    az acr create --resource-group az204-acr-rg \
        --name <myContainerRegistry> --sku Basic
    

    Not

    Komutu, Azure Container Registry hakkında bilgi edinen geliştiriciler için uygun maliyetli bir seçenek olan Temel kayıt defteri oluşturur.

Dockerfile'dan görüntü oluşturma ve gönderme

Şimdi Azure Container Registry'yi kullanarak yerel Dockerfile'ı temel alan bir görüntü derleyin ve gönderin.

  1. Yerel bir dizin oluşturun veya bu dizine gidin ve dockerfile dosyasını oluşturmak için aşağıdaki komutu kullanın. Dockerfile, Microsoft Container Registry'de barındırılan görüntüye hello-world başvuran tek bir satır içerir.

    echo FROM mcr.microsoft.com/hello-world > Dockerfile
    
  2. az acr build Görüntüyü oluşturan ve görüntü başarıyla oluşturulduktan sonra kayıt defterinize göndererek komutunu çalıştırın. değerini daha önce kullandığınız adla değiştirin <myContainerRegistry> .

    az acr build --image sample/hello-world:v1  \
        --registry <myContainerRegistry> \
        --file Dockerfile .
    

    Aşağıda, son sonuçları içeren son birkaç satırı gösteren önceki komuttan elde edilen çıkışın kısaltılmış bir örneği verilmiştir. Resmin listelendiği alanda sample/hello-word görebilirsinizrepository.

    - image:
        registry: <myContainerRegistry>.azurecr.io
        repository: sample/hello-world
        tag: v1
        digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
      runtime-dependency:
        registry: mcr.microsoft.com
        repository: hello-world
        tag: latest
        digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
      git: {}
    
    
    Run ID: cf1 was successful after 11s
    

Sonuçları doğrulama

  1. Komutunu kullanarak az acr repository list kayıt defterinizdeki depoları listeleyin. değerini daha önce kullandığınız adla değiştirin <myContainerRegistry> .

    az acr repository list --name <myContainerRegistry> --output table
    

    Çıktı:

    Result
    ----------------
    sample/hello-world
    
  2. az acr repository show-tags sample/hello-world deposundaki etiketleri listelemek için komutunu kullanın. değerini daha önce kullandığınız adla değiştirin <myContainerRegistry> .

    az acr repository show-tags --name <myContainerRegistry> \
        --repository sample/hello-world --output table
    

    Çıktı:

    Result
    --------
    v1
    

Görüntüyü ACR'de çalıştırma

  1. sample/hello-world:v1 komutunu kullanarak az acr run kapsayıcı kayıt defterinizden kapsayıcı görüntüsünü çalıştırın. Aşağıdaki örnek, komutunu çalıştırdığınız kayıt defterini belirtmek için kullanır $Registry . değerini daha önce kullandığınız adla değiştirin <myContainerRegistry> .

    az acr run --registry <myContainerRegistry> \
        --cmd '$Registry/sample/hello-world:v1' /dev/null
    

    cmd Bu örnekteki parametre kapsayıcıyı varsayılan yapılandırmasında çalıştırır, ancak cmd diğer docker run parametreleri ve hatta diğer docker komutları destekler.

    Aşağıdaki örnek çıktı kısaltılır:

    Packing source code into tar to upload...
    Uploading archived source code from '/tmp/run_archive_ebf74da7fcb04683867b129e2ccad5e1.tar.gz'...
    Sending context (1.855 KiB) to registry: mycontainerre...
    Queued a run with ID: cab
    Waiting for an agent...
    2019/03/19 19:01:53 Using acb_vol_60e9a538-b466-475f-9565-80c5b93eaa15 as the home volume
    2019/03/19 19:01:53 Creating Docker network: acb_default_network, driver: 'bridge'
    2019/03/19 19:01:53 Successfully set up Docker network: acb_default_network
    2019/03/19 19:01:53 Setting up Docker configuration...
    2019/03/19 19:01:54 Successfully set up Docker configuration
    2019/03/19 19:01:54 Logging in to registry: mycontainerregistry008.azurecr.io
    2019/03/19 19:01:55 Successfully logged into mycontainerregistry008.azurecr.io
    2019/03/19 19:01:55 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
    2019/03/19 19:01:55 Launching container with name: acb_step_0
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    2019/03/19 19:01:56 Successfully executed container: acb_step_0
    2019/03/19 19:01:56 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 0.843801)
    
    Run ID: cab was successful after 6s
    

Kaynakları temizleme

Artık gerekli olmadığında komutunu kullanarak az group delete kaynak grubunu, kapsayıcı kayıt defterini ve orada depolanan kapsayıcı görüntülerini kaldırabilirsiniz.

az group delete --name az204-acr-rg --no-wait