Alıştırma - Docker görüntüsünü Azure Container Instances'a dağıtma

Tamamlandı

Azure Container Instances, Docker görüntülerini Azure'da çalıştırmanızı sağlar.

Önceki alıştırmada web uygulamanızı yerel bir Docker görüntüsü olarak paketleyip test ettiniz. Şimdi bu alıştırmanın çıktısını kullanmak ve web uygulamasını genel olarak kullanılabilir hale getirmek istiyorsunuz. Bu kullanılabilirliği gerçekleştirmek için görüntüyü Azure Container Instance olarak çalıştırırsınız.

Bu alıştırmada, web uygulaması için görüntüyü yeniden derlemeyi ve Azure Container Registry'ye yüklemeyi öğreneceksiniz. Görüntüyü çalıştırmak için Azure Container Instances hizmetini kullanacaksınız.

Önemli

Bu alıştırmayı çalıştırmak için kendi Azure aboneliğinizin olması gerekir ve ücret ödeyebilirsiniz. Mevcut bir Azure aboneliğiniz yoksa başlamadan önce ücretsiz hesap oluşturun.

Kapsayıcı kayıt defteri oluşturma

  1. Azure aboneliğinizle Azure portalında oturum açın.

  2. Kaynak menüsünde veya Giriş sayfasında Kaynak oluştur'u seçin. Kaynak oluştur bölmesi görüntülenir.

  3. Menüde Kapsayıcılar'ı ve ardından Container Registry'yi seçin.

    Screenshot that shows Create a resource with Container Registry.

    Kapsayıcı kayıt defteri oluştur bölmesi görüntülenir.

  4. Temel Bilgiler sekmesinde, her ayar için aşağıdaki değerleri girin.

    Ayar Değer
    Proje ayrıntıları
    Abonelik Kaynakları oluşturmanıza ve yönetmenize izin verilen Azure aboneliğinizi seçin.
    Kaynak grubu learn-deploy-container-aci-rg adlı yeni bir kaynak grubu oluştur'u seçin. Seçtiğiniz adı unutmayın; bu modülün kalan alıştırmalarında kullanacaksınız. Ayrıca, modülü tamamladığınızda bu kaynağı temizlemeyi unutmayın.
    Örnek ayrıntıları
    Kayıt defteri adı İstediğiniz bir adı seçin. Kaynak defteri adı Azure’da benzersiz olmalı ve 5-50 arası alfasayısal karakter içermelidir.
    Konum Size yakın bir konum seçin.
    SKU Standart
  5. Gözden geçir ve oluştur’u seçin. Doğrulama başarılı bildirimi görüntülendiğinde Oluştur'u seçin. Devam etmeden önce kapsayıcı kayıt defterinin dağıtılmasını bekleyin.

  6. Kaynağa git’i seçin. Kapsayıcı kayıt defteri bölmesinde kapsayıcı kayıt defterinizle ilgili temel bilgiler görüntülenir.

  7. Kaynak menüsündeki Ayarlar altında Erişim anahtarları'nı seçin. Kapsayıcı kayıt defterinizin Erişim anahtarları bölmesi görüntülenir.

  8. Yönetici kullanıcı ayarı devre dışıysa, Yönetici kullanıcı erişim tuşunu etkinleştirmek için kaydırıcıyı seçin. Kapsayıcı kayıt defteriniz için Kullanıcı adı ve parolalar görüntülenir.

  9. Kapsayıcı kayıt defterinizin Kayıt Defteri adını, Oturum açma sunucusunu, Kullanıcı adını ve parolalarını not edin.

    Dekont

    Bu alıştırmada, görüntüleri karşıya yükleyip kayıt defterini test edebilmemiz için yönetici hesabı erişimini etkinleştireceğiz. Üretim ortamında, kayıt defterinin beklendiği gibi çalıştığından memnun olduğunuzda Yönetici kullanıcı hesabı erişimini devre dışı bırakmak ve Microsoft Entra Kimlik Koruması kullanmak önemlidir.

    Screenshot of the Access keys details.

Otel rezervasyon sistemi uygulamasına ait görüntüyü Azure Container Registry’ye yükleme

  1. Yerel komut isteminizde, geçerli reservationsystem görüntüyü kayıt defterinizin adıyla etiketlemek için öğesini kapsayıcı kayıt defterinizin adıyla değiştirerek <registry-name> aşağıdaki komutu çalıştırın:

    docker tag reservationsystem:latest <registry-name>.azurecr.io/reservationsystem:latest
    
  2. docker image ls Görüntünün doğru etiketlendiğini doğrulamak için komutunu çalıştırın:

    docker image ls
    

    Aşağıdaki çıktıya benzer bir sonuç görmeniz gerekir:

    REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
    reservationsystem                             latest              a56281e7038f        4 minutes ago       1.76GB
    <registry-name>.azurecr.io/reservationsystem  latest              a56281e7038f        4 minutes ago       1.76GB
    
  3. Komut isteminde Azure Container Registry'nizde oturum açın. docker login komutunu kullanın ve önceden not ettiğiniz kayıt defteri oturum açma sunucusunu belirtin. İstendiğinde erişim anahtarlarınızdan kullanıcı adını ve parolayı girin.

    docker login <login-server>
    

    Dekont

    Bir daemon'dan uygulamanızın Microsoft Entra Kimliği'ne kayıtlı olmadığını belirten bir hata yanıtı alabilirsiniz. Bu alıştırmada daha önce belirtildiği gibi dağıtımımızı test etmek için Yönetici kullanıcı erişim anahtarını etkinleştirdiniz.

  4. Görüntüyü Azure Container Registry'deki kayıt defterinize yüklemek için öğesini kendi kayıt defteri adınızla değiştirerek <registry-name> aşağıdaki komutu girin:

    docker push <registry-name>.azurecr.io/reservationsystem:latest
    

    Karşıya yükleme tamamlanana kadar bekleyin. Bu işlemin görüntünün tüm nesnelerini deponuza göndermesi birkaç dakika sürer. Her nesne Beklemeaşamasından Hazırlama aşamasından Gönderime Göndermeye doğru ilerledikçe ilerleme durumunu gözlemleyebilirsiniz.

Kayıt defterinin içeriğini doğrulama

Alıştırmanın geri kalanında Azure portalına geri döneceksiniz.

  1. Azure portalında kapsayıcı kayıt defterinize dönün.

  2. Kaynak menüsünde, Hizmetler'in altında Depolar'ı seçin. Kapsayıcı kayıt defterinizin Depolar bölmesi görüntülenir.

  3. reservationsystem deposunun göründüğünden emin olun. Reservationsystem deposunu seçin ve deponun en son etiketine sahip bir görüntü içerdiğini doğrulayın.

    Screenshot showing the repository and tagged reservation system container image in the registry.

Azure Container Instances'ı kullanarak görüntü yükleme ve çalıştırma

  1. Azure portalda Kaynak oluştur’u seçin. Kaynak oluştur bölmesi görüntülenir.

  2. Kaynak menüsünde Kapsayıcılar'ı ve ardından Kapsayıcı Örnekleri'ni seçin.

    Screenshot showing Container Instances.

    Kapsayıcı örneği oluştur bölmesi görüntülenir.

    Kapsayıcı Örneği'nin yapılandırılması için birkaç adım vardır. Kaynak grubu bilgilerini ve kapsayıcı ayrıntılarını ayarlayarak başlayın. Ardından kapsayıcının ağ seçeneklerini yapılandırın ve ilkeyi yeniden başlatın.

  3. Temel Bilgiler sekmesinde, her ayar için aşağıdaki değerleri girin.

    Ayar Değer
    Proje ayrıntıları
    Abonelik Kaynak oluşturmanıza ve yönetmenize izin verilen varsayılan Azure aboneliğinizi seçin
    Kaynak grubu Mevcut kaynak grubunu yeniden kullanma learn-deploy-container-aci-rg
    Kapsayıcı ayrıntıları
    Kapsayıcı adı hotelsysteminstance
    Bölge Varsayılan konumu kullanın
    Görüntü kaynağı Docker Hub veya diğer kayıt defteri
    Görüntü türü Özel
    Görsel <kayıt-defteri-adı>.azurecr.io/reservationsystem:latest
    Görüntü kayıt defteri oturum açma sunucusu Kayıt defterinizin oturum açma sunucusunun adını girin
    Görüntü kayıt defteri kullanıcı adı Kayıt defterinizin kullanıcı adını girin
    Görüntü kayıt defteri parolası Kayıt defterinizin parolasını girin
    İşletim Sistemi Türü Linux
    Size Varsayılan Boyut değerini 1 vcpu, 1,5 GiB bellek, 0 gpu olarak bırakın
  4. İleri: Ağ'ı seçin.

  5. sekmesinde, her ayar için aşağıdaki değerleri girin.

    Ayar Değer
    Ağ türü Sunulabilir
    DNS ad etiketi Kapsayıcı url'sinin bir parçası olarak kullanılacak benzersiz bir ad seçin.
    Bağlantı noktaları
    Bağlantı Noktaları 80
    Bağlantı noktası protokolü TCP
  6. İleri: Gelişmiş'i seçin.

  7. Gelişmiş sekmesinde, her ayar için aşağıdaki değerleri girin.

    Ayar Değer
    Yeniden başlatma ilkesi Her zaman
    Ortam değişkenleri tüm ayarları boş bırakın
    Komut geçersiz kılma boş bırakın
  8. Gözden geçir ve oluştur’u seçin. Doğrulamanın tamamlanmasını bekleyin ve gerekirse hataları düzeltin.

  9. Oluştur’u seçin.

  10. Kapsayıcı örneği oluşturulduğunda Kaynağa git'i seçin. Kapsayıcı örneği bölmeniz görüntülenir.

  11. Genel Bakış bölmesinde kapsayıcı örneğinin tam etki alanı adını (FQDN) bulun.

    Screenshot that shows the New pane in Azure portal showing the Container properties with the FQDN highlighted.

  12. Web tarayıcısı kullanarak URL'sine http://FQDN/api/reservations/1gidin ve FQDN yerine kapsayıcı örneğinizin tam etki alanı adını yazın. Örneğin, yukarıdaki ekran görüntüsünde görünen FQDN'yi kullanmak şöyle görünür:

    http://hotel.southcentralus.azurecontainer.io/api/reservations/1
    

    Web uygulaması, rezervasyon 1 ayrıntılarını içeren bir JSON nesnesiyle yanıt vermelidir.

Tebrikler! Docker görüntüsünü Azure Container Registry'ye yüklediniz ve Azure Container Instances hizmetini kullanarak çalıştırdınız.