Öğretici: Linux Service Fabric kümesi üzerinde kapsayıcı görüntüleri oluşturma

Bu öğretici, Linux Service Fabric kümesinde kapsayıcıları kullanmayı gösteren öğretici serisinin ilk parçasıdır. Bu öğreticide, bir çoklu konteyner uygulaması Service Fabric ile kullanılmak üzere hazırlanmaktadır. Sonraki öğreticilerde, bu görüntüler Service Fabric uygulamasının bir parçası olarak kullanılır. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • Uygulama kaynağını GitHub’dan kopyalama
  • Uygulama kaynağından kapsayıcı görüntüsü oluşturma
  • Azure Container Registry (ACR) örneği dağıtma
  • ACR için kapsayıcı görüntüsü etiketleme
  • Görüntüyü ACR’ye yükleme

Bu öğretici serisinde şunların nasıl yapıldığını öğrenirsiniz:

Önkoşullar

  • Service Fabric için ayarlanan Linux geliştirme ortamı. Linux ortamınızı ayarlamak için buradaki yönergeleri izleyin.
  • Bu öğretici için Azure CLI 2.0.4 veya sonraki bir sürümü kullanmanız gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI’yı yükleme.
  • Ayrıca, Azure aboneliğine sahip olmalısınız. Ücretsiz deneme sürümü hakkında daha fazla bilgi için buraya göz atın.

Uygulama kodunu alma

Bu öğreticide kullanılan örnek uygulama, oylama uygulamasıdır. Bu uygulama, ön uç bileşen ile arka uç Redis örneğinden oluşur. Bileşenler, kapsayıcı görüntüleri olarak paketlenir.

Geliştirme ortamına uygulamanın bir kopyasını indirmek için Git kullanın.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/

Çözüm, iki klasör ve bir ‘docker-compose.yml’ dosyası içerir. ‘azure-vote’ klasörü, görüntüyü derlemek için kullanılan Dockerfile dosyasının yanı sıra Python ön uç hizmetini de içerir. ‘Voting’ dizini ise kümeye dağıtılmış Service Fabric uygulama paketini içerir. Bu dizinler, bu öğreticiyi tamamlamak için gerekli varlıkları içerir.

Kapsayıcı görüntüleri oluşturma

azure-vote dizini içinde, ön uç web bileşeni için görüntü derlemek üzere aşağıdaki komutu çalıştırın. Bu komut, görüntüyü oluşturmak için bu dizindeki Docker dosyasını kullanır.

docker build -t azure-vote-front .

Not

Erişim reddediliyorsa Docker'da sudo ile çalışmayı anlatan bu belgeyi izleyin.

Gerekli tüm bağımlılıkların Docker Hub’dan çekilmesi gerektiğinden, bu komutun çalıştırılması uzun sürebilir. Tamamlandığında, yeni oluşturduğunuz azure-vote-front görüntüsünü görmek için docker images komutunu kullanın.

docker images

Azure Container Registry’yi dağıtma

Azure hesabınızda oturum açmak için önce az login komutunu çalıştırın.

az login

Sonra, Azure Container kayıt defterini oluşturmada kullanacağınız aboneliğinizi seçmenizi sağlayan az account komutunu kullanın. subscription_id> yerine <Azure aboneliğinizin abonelik kimliğini girmeniz gerekir.

az account set --subscription <subscription_id>

Bir Azure Container Registry dağıtırken önce bir kaynak grubuna ihtiyaç duyarsınız. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.

az group create komutuyla bir kaynak grubu oluşturun. Bu örnekte, westus bölgesinde myResourceGroup adlı bir kaynak grubu oluşturulur.

az group create --name <myResourceGroup> --location westus

az acr create komutuyla Azure Container kayıt defteri oluşturun. acrName> değerini aboneliğiniz altında oluşturmak istediğiniz kapsayıcı kayıt defterinin adıyla değiştirin<. Bu ad, alfasayısal karakterler içermeli ve benzersiz olmalıdır.

az acr create --resource-group <myResourceGroup> --name <acrName> --sku Basic --admin-enabled true

Bu öğreticinin geri kalan aşamalarında, seçtiğiniz kapsayıcı kayıt defteri adı için yer tutucu olarak “acrName” kullanacağız. Lütfen bu değeri not edin.

Kapsayıcı kayıt defterinizde oturum açın

Görüntüleri göndermeden önce ACR örneğinizde oturum açın. İşlemi tamamlamak için az acr login komutunu kullanın. Kapsayıcı kayıt defterine oluşturulduğunda verilen benzersiz adı sağlayın.

az acr login --name <acrName>

Komut tamamlandığında bir “Oturum Başarıyla Açıldı” iletisi döndürür.

Kapsayıcı görüntülerini etiketleme

Her kapsayıcı görüntüsünün, kayıt defterinin loginServer adıyla etiketlenmesi gerekir. Bu etiket, görüntü kayıt defterine kapsayıcı görüntüleri gönderilirken kullanılır.

Mevcut görüntülerin listesini görüntülemek için docker images komutunu kullanın.

docker images

Çıkış:

REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
azure-vote-front             latest              052c549a75bf        About a minute ago   913MB

loginServer adını almak için aşağıdaki komutu çalıştırın:

az acr show --name <acrName> --query loginServer --output table

Bu çıkış, aşağıdaki sonuçları içeren bir tablo döndürür. Bu sonuç, sonraki adımda kapsayıcı kayıt defterine göndermeden önce azure-vote-front görüntünüzü etiketleyebilmeniz için gereklidir.

Result
------------------
<acrName>.azurecr.io

Şimdi, kapsayıcı kayıt defterinizin loginServer’ı için azure-vote-front görüntüsünü etiketleyin. Ayrıca, görüntü adının sonuna :v1 ekleyin. Bu etiket, görüntü sürümünü belirtir.

docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1

Etiketledikten sonra, işlemi doğrulamak için ‘docker images’ komutunu çalıştırın.

Çıkış:

REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front                       latest              052c549a75bf        23 minutes ago      913MB
<acrName>.azurecr.io/azure-vote-front  v1                  052c549a75bf        23 minutes ago      913MB

Kayıt defterine görüntü gönderme

azure-vote-front görüntüsünü kayıt defterine gönderin.

Aşağıdaki örneği kullanarak, ortamınızda, ACR loginServer adını loginServer olarak değiştirin.

docker push <acrName>.azurecr.io/azure-vote-front:v1

Docker gönderme komutlarının tamamlanması birkaç dakika sürebilir.

Kayıt defterindeki görüntüleri listeleme

Azure Container Registry’nize gönderilen görüntülerin listesini döndürmek için az acr repository list komutunu kullanın. Komutu ACR örneği adıyla güncelleştirin.

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

Çıkış:

Result
----------------
azure-vote-front

Öğretici tamamlandığında, kapsayıcı görüntüsü özel bir Azure Container Registry örneğinde depolanır. Sonraki öğreticilerde, bu görüntüyü ACR’den bir Service Fabric kümesine dağıtma işlemi açıklanmıştır.

Sonraki adımlar

Bu öğreticide GitHub'dan bir uygulama çekilmiştir ve kapsayıcı görüntüleri oluşturulup kayıt defterine gönderilmiştir. Aşağıdaki adımlar tamamlandı:

  • Uygulama kaynağını GitHub’dan kopyalama
  • Uygulama kaynağından kapsayıcı görüntüsü oluşturma
  • Azure Container Registry (ACR) örneği dağıtma
  • ACR için kapsayıcı görüntüsü etiketleme
  • Görüntüyü ACR’ye yükleme

Yeoman kullanarak bir Service Fabric uygulamasına kapsayıcı paketleme hakkında bilgi edinmek için sonraki öğreticiye geçin.