Öğretici: Azure Container Instances'a dağıtım için kapsayıcı görüntüsü oluşturma
Azure Container Instances, Docker kapsayıcılarının herhangi bir sanal makine sağlama veya herhangi bir üst düzey hizmet benimsenmesi gerekmeden Azure altyapısına dağıtılmasını sağlar. Bu öğreticide, Azure Container Instances kullanılarak çalıştırılabilen bir kapsayıcı görüntüsüne küçük bir Node.js web uygulamasını paketlersiniz.
Serinin ilk bölümündeki bu makalede şunları yapacaksınız:
- Uygulama kaynak kodunu GitHub’dan kopyalama
- Uygulama kaynağından kapsayıcı görüntüsü oluşturma
- Görüntüyü yerel bir Docker ortamında test etme
Öğreticinin ikinci ve üçüncü bölümünde, görüntünüzü Azure Container Registry’ye yükler ve Azure Container Instances’a dağıtırsınız.
Başlamadan önce
Bu öğreticiyi tamamlamak için aşağıdaki gereksinimleri karşılamanız gerekir:
Azure CLI: Yerel bilgisayarınızda Azure CLI 2.0.29 veya sonraki bir sürümü yüklenmiş olmalıdır. 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.
Docker: Bu öğreticide kapsayıcılar, kapsayıcı görüntüleri ve temel docker
komutları gibi temel Docker kavramları hakkında bilgi sahibi olduğunuz varsayılmıştır. Docker ve kapsayıcı temel bilgileri ile ilgili giriş yapmak için Docker’a genel bakış bölümüne bakın.
Docker: Bu öğreticiyi tamamlamak için Docker'ın yerel olarak yüklenmesi gerekir. Docker, macOS, Windows ve Linux üzerinde Docker ortamını yapılandıran paketler sağlar.
Önemli
Azure Cloud shell, Docker programını içermediğinden bu öğreticiyi tamamlamak için yerel bilgisayarınıza hem Azure CLI’yi hem de Docker Altyapısı’nı yüklemeniz gerekir. Bu öğretici için Azure Cloud Shell kullanamazsınız.
Uygulama kodunu alma
Bu öğreticideki örnek uygulama, Node.js ile derlenen basit bir web uygulamasıdır. Uygulama, statik bir HTML sayfası görevi görür ve aşağıdaki ekran görüntüsüne benzer:
Örnek uygulamanın deposunu kopyalamak için Git kullanın:
git clone https://github.com/Azure-Samples/aci-helloworld.git
Doğrudan GitHub’dan da ZIP arşivini indirebilirsiniz.
Kapsayıcı görüntüsünü oluşturma
Örnek uygulamada bulunan Dockerfile, kapsayıcının nasıl derlendiğini gösterir. Kapsayıcılarla kullanmaya uygun küçük bir dağıtım olan Alpine Linux tabanlı resmi bir Node.js görüntüsünden başlatılır. Ardından uygulama dosyalarını kapsayıcıya kopyalar, Node Package Manager’ı kullanarak bağımlılıkları yükler ve son olarak uygulamayı başlatır.
FROM node:8.9.3-alpine
RUN mkdir -p /usr/src/app
COPY ./app/* /usr/src/app/
WORKDIR /usr/src/app
RUN npm install
CMD node /usr/src/app/index.js
Kapsayıcı görüntüsünü oluşturmak için docker build komutunu kullanın ve görüntüyü aci-tutorial-app olarak etiketleyin:
docker build ./aci-helloworld -t aci-tutorial-app
docker build komutunun çıktısı aşağıdakine benzer (okunabilirliği artırmak için kesilmiştir):
docker build ./aci-helloworld -t aci-tutorial-app
Sending build context to Docker daemon 119.3kB
Step 1/6 : FROM node:8.9.3-alpine
8.9.3-alpine: Pulling from library/node
88286f41530e: Pull complete
84f3a4bf8410: Pull complete
d0d9b2214720: Pull complete
Digest: sha256:c73277ccc763752b42bb2400d1aaecb4e3d32e3a9dbedd0e49885c71bea07354
Status: Downloaded newer image for node:8.9.3-alpine
---> 90f5ee24bee2
...
Step 6/6 : CMD node /usr/src/app/index.js
---> Running in f4a1ea099eec
---> 6edad76d09e9
Removing intermediate container f4a1ea099eec
Successfully built 6edad76d09e9
Successfully tagged aci-tutorial-app:latest
Oluşturulan görüntüyü görmek için docker images komutunu kullanın:
docker images
Yeni derlenen görüntü listede görünmelidir:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 seconds ago 68.1 MB
Kapsayıcıyı yerel olarak çalıştırma
Kapsayıcıyı Azure Container Instances’a dağıtmadan önce docker run komutunu kullanarak bunu yerel olarak çalıştırın ve çalışır durumda olduğunu doğrulayın. -d
anahtarı kapsayıcının arka planda çalışmasını sağlar. -p
ise işleminizdeki rastgele bağlantı noktalarından birini kapsayıcının 80 numaralı bağlantı noktasına eşlemenizi sağlar.
docker run -d -p 8080:80 aci-tutorial-app
Komut başarılı olduysa docker run
komutundan elde edilen çıktı, çalıştırılan kapsayıcının kimliğini görüntüler:
docker run -d -p 8080:80 aci-tutorial-app
```output
a2e3e4435db58ab0c664ce521854c2e1a1bda88c9cf2fcff46aedf48df86cccf
Şimdi kapsayıcının çalıştırıldığını onaylamak için tarayıcınızda http://localhost:8080
adresine gidin. Aşağıdaki ekran görüntüsüne benzer bir web sayfası görmeniz gerekir:
Sonraki adımlar
Bu öğreticide, Azure Container Instances’ta dağıtılabilen bir kapsayıcı görüntüsü oluşturdunuz ve bunun yerel olarak çalıştırıldığını doğruladınız. Şu ana kadar aşağıdaki adımları tamamladınız:
- GitHub’dan uygulama kaynağı kopyalandı
- Uygulama kaynağından bir kapsayıcı görüntüsü oluşturuldu
- Kapsayıcı yerel olarak test edildi
Kapsayıcı görüntünüzü Azure Container Registry’de depolama hakkında bilgi edinmek için sonraki öğreticiye geçin: