Tutorial: Membuat gambar kontainer pada kluster Linux Service Fabric

Tutorial ini adalah bagian dari seri tutorial yang menunjukkan cara menggunakan kontainer di kluster Service Fabric Linux. Dalam tutorial ini, aplikasi multi-kontainer disiapkan untuk digunakan dengan Service Fabric. Dalam tutorial berikutnya, gambar-gambar ini digunakan sebagai bagian dari aplikasi Service Fabric. Dalam tutorial ini, Anda akan belajar cara:

  • Mengkloning sumber aplikasi dari GitHub
  • Membuat gambar kontainer dari sumber aplikasi
  • Menyebarkan instans Azure Container Registry (ACR)
  • Menandai gambar kontainer untuk ACR
  • Mengunggah gambar ke ACR

Dalam tutorial ini, Anda akan belajar cara:

Prasyarat

  • Lingkungan pengembangan Linux disiapkan untuk Service Fabric. Ikuti petunjuk di sini untuk menyiapkan lingkungan Linux Anda.
  • Tutorial ini mengharuskan Anda menjalankan CLI Azure versi 2.0.4 atau yang lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang CLI Azure.
  • Selain itu, Anda memerlukan langganan Azure yang tersedia. Untuk informasi lebih lanjut tentang versi uji coba gratis, buka di sini.

Mendapatkan kode aplikasi

Aplikasi contoh yang digunakan dalam tutorial ini adalah aplikasi pemungutan suara. Aplikasi ini terdiri dari komponen web front-end dan instans Redis back-end. Komponen dipaketkan ke dalam gambar kontainer.

Gunakan git untuk mengunduh salinan aplikasi ke lingkungan pengembangan Anda.

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

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

Solusinya berisi dua folder dan file 'docker-compose.yml'. Folder 'azure-vote' berisi layanan frontend Python bersama dengan Dockerfile yang digunakan untuk membuat gambar. Direktori 'Voting' berisi paket aplikasi Service Fabric yang disebarkan ke kluster. Direktori ini berisi aset yang diperlukan untuk tutorial ini.

Membuat gambar kontainer

Di dalam direktori azure-vote, jalankan perintah berikut untuk menyusun gambar untuk komponen web front-end. Perintah ini menggunakan Dockerfile dalam direktori ini untuk membangun gambar.

docker build -t azure-vote-front .

Catatan

Jika Anda mendapatkan izin ditolak maka ikuti dokumentasi ini tentang cara bekerja dengan docker tanpa sudo.

Perintah ini dapat memakan waktu karena semua dependensi yang diperlukan perlu ditarik dari Docker Hub. Setelah selesai, gunakan perintah gambar docker untuk melihat gambar azure-vote-front yang baru saja dibuat.

docker images

Menyebarkan Azure Container Registry

Pertama-tama jalankan perintah masuk az untuk masuk ke akun Azure Anda.

az login

Selanjutnya, gunakan perintah akun az untuk memilih langganan Anda untuk membuat Azure Container registry. Anda harus memasukkan ID langganan dari langganan Azure Anda sebagai <subscription_id>.

az account set --subscription <subscription_id>

Saat menggunakan Azure Container Registry, Anda terlebih dahulu memerlukan grup sumber daya. Grup sumber daya Azure adalah kontainer logis yang disebarkan dan dikelola sumber daya Azure.

Buat grup sumber daya dengan perintah az group create. Dalam contoh ini, grup sumber daya bernama myResourceGroup dibuat di wilayah westus.

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

Buat Azure Container Registry dengan perintah buat acr az. Ganti <acrName> dengan nama registri kontainer yang ingin Anda buat di bawah langganan Anda. Nama ini harus alfanumerik dan unik.

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

Sepanjang sisa tutorial ini, kami menggunakan "acrName" sebagai tempat penampung untuk nama registri kontainer yang Anda pilih. Harap perhatikan nilai ini.

Masuk ke registri kontainer Anda

Masuk ke instans ACR Anda sebelum mendorong gambar ke instans tersebut. Gunakan perintah masuk acr az untuk menyelesaikan operasi. Berikan nama unik yang diberikan ke registri kontainer ketika dibuat.

az acr login --name <acrName>

Perintah mengembalikan pesan 'Masuk Berhasil' setelah selesai.

Men-tag gambar kontainer

Setiap gambar kontainer perlu ditandai dengan nama loginServer registri. Tag ini digunakan untuk perutean saat mendorong gambar kontainer ke registri gambar.

Untuk melihat daftar gambar saat ini, gunakan perintah gambar docker.

docker images

Output:

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

Untuk mendapatkan nama loginServer, jalankan perintah berikut:

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

Ini menghasilkan tabel dengan hasil berikut. Hasil ini akan digunakan untuk menandai gambar azure-vote-front Anda sebelum mendorongnya ke registri kontainer di langkah berikutnya.

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

Sekarang, tandai gambar azure-vote-front dengan loginServer registri kontainer Anda. Selain itu, tambahkan :v1 ke akhir nama gambar. Tag ini menunjukkan versi gambar.

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

Setelah ditandai, jalankan 'gambar docker' untuk memverifikasi operasi.

Output:

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

Mendorong gambar ke registri

Dorong gambar azure-vote-front ke registri.

Dengan menggunakan contoh berikut, ganti nama ACR loginServer dengan loginServer dari lingkungan Anda.

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

Perintah dorong docker membutuhkan waktu beberapa menit untuk menyelesaikannya.

Mencamtumkan gambar dalam registri

Untuk mengembalikan daftar gambar yang telah didorong ke registri Azure Container Anda, gunakan perintah daftar repositori az acr. Perbarui perintah dengan nama instans ACR.

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

Output:

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

Pada penyelesaian tutorial, gambar kontainer telah disimpan dalam instans Azure Container Registry pribadi. Gambar ini digunakan dari ACR ke kluster Service Fabric dalam tutorial berikutnya.

Langkah berikutnya

Dalam tutorial ini, aplikasi ditarik dari GitHub dan gambar kontainer dibuat dan didorong ke registri. Langkah-langkah berikut telah selesai:

  • Mengkloning sumber aplikasi dari GitHub
  • Membuat gambar kontainer dari sumber aplikasi
  • Menyebarkan instans Azure Container Registry (ACR)
  • Menandai gambar kontainer untuk ACR
  • Mengunggah gambar ke ACR

Lanjutkan ke tutorial berikutnya untuk mempelajari tentang wadah kemasan ke dalam aplikasi Service Fabric menggunakan Yeoman.