Membuat kontainer untuk digunakan kembali

Gunakan resep kontainer ini untuk membuat kontainer Azure AI yang dapat digunakan kembali. Kontainer dapat dibuat dengan beberapa atau semua pengaturan konfigurasi sehingga tidak diperlukan saat kontainer dimulai.

Setelah Anda memiliki lapisan kontainer baru ini (dengan pengaturan), dan Anda telah mengujinya secara lokal, Anda dapat menyimpan kontainer dalam registri kontainer. Saat kontainer dimulai, ini hanya akan memerlukan pengaturan yang saat ini tidak disimpan dalam kontainer. Kontainer registri privat menyediakan ruang konfigurasi bagi Anda untuk meneruskan pengaturan tersebut.

Sintaks eksekusi docker

Contoh docker run apa pun mengasumsikan konsol Windows dengan karakter kelanjutan baris ^. Pertimbangkan hal berikut untuk penggunaan Anda sendiri:

  • Jangan mengubah urutan argumen kecuali Anda memahami kontainer docker.
  • Jika Anda menggunakan sistem operasi selain Windows, atau konsol selain konsol Windows, gunakan konsol/terminal yang benar, sintaksis folder untuk pemasangan, dan karakter kelanjutan baris untuk konsol dan sistem Anda. Karena kontainer layanan Azure AI adalah sistem operasi Linux, pemasangan target menggunakan sintaks folder bergaya Linux.
  • Contoh docker run menggunakan direktori dari drive c: untuk menghindari konflik izin pada Windows. Jika perlu menggunakan direktori tertentu sebagai direktori input, Anda mungkin perlu memberikan izin layanan docker.

Tidak menyimpan pengaturan konfigurasi dalam gambar

Contoh perintah docker run untuk setiap layanan tidak menyimpan pengaturan konfigurasi apa pun dalam kontainer. Saat Anda memulai kontainer dari konsol atau layanan registri, pengaturan konfigurasi tersebut harus diteruskan. Kontainer registri privat menyediakan ruang konfigurasi bagi Anda untuk meneruskan pengaturan tersebut.

Resep penggunaan kembali: menyimpan semua pengaturan konfigurasi dengan kontainer

Untuk menyimpan semua pengaturan konfigurasi, buat Dockerfile dengan pengaturan tersebut.

Masalah terkait pendekatan ini:

  • Kontainer baru memiliki nama dan tag terpisah dari kontainer asli.
  • Untuk mengubah pengaturan ini, Anda harus mengubah nilai Dockerfile, membuat ulang gambar, dan menerbitkan ulang registri Anda.
  • Jika seseorang mendapatkan akses ke registri kontainer atau host lokal Anda, mereka dapat menjalankan kontainer dan menggunakan titik akhir layanan Azure AI.
  • Jika layanan Azure AI yang Anda gunakan tidak memerlukan pemasangan input, jangan tambahkan COPY baris ke Dockerfile Anda.

Buat Dockerfile, tarik dari kontainer layanan Azure AI yang ada yang ingin Anda gunakan, lalu gunakan perintah docker di Dockerfile untuk mengatur atau menarik informasi yang dibutuhkan kontainer.

Contoh ini:

  • Mengatur titik akhir penagihan, {BILLING_ENDPOINT} dari kunci lingkungan host menggunakan ENV.
  • Mengatur API-key penagihan, {ENDPOINT_KEY} dari kunci lingkungan host menggunakan 'ENV.

Resep penggunaan kembali: menyimpan pengaturan penagihan dengan kontainer

Contoh ini menunjukkan cara membangun wadah sentimen layanan Bahasa dari Dockerfile.

FROM mcr.microsoft.com/azure-cognitive-services/sentiment:latest
ENV billing={BILLING_ENDPOINT}
ENV apikey={ENDPOINT_KEY}
ENV EULA=accept

Buat dan jalankan kontainer secara lokal atau dari kontainer registri privat Anda sesuai kebutuhan.

Resep penggunaan kembali: menyimpan pengaturan penagihan dan pemasangan dengan kontainer

Contoh ini menunjukkan cara menggunakan Pemahaman Bahasa, menyimpan penagihan, dan model dari Dockerfile.

  • Menyalin file model Pemahaman Bahasa (LUIS) dari sistem file host menggunakan COPY.
  • Kontainer LUIS mendukung lebih dari satu model. Jika semua model disimpan dalam folder yang sama, Anda semua memerlukan satu pernyataan COPY.
  • Jalankan file docker dari induk relatif direktori input model. Untuk contoh berikut, jalankan perintah docker build dan docker run dari induk relatif dari /input. /input pertama pada perintah COPY adalah direktori komputer host. /input kedua adalah direktori kontainer.
FROM <container-registry>/<cognitive-service-container-name>:<tag>
ENV billing={BILLING_ENDPOINT}
ENV apikey={ENDPOINT_KEY}
ENV EULA=accept
COPY /input /input

Buat dan jalankan kontainer secara lokal atau dari kontainer registri privat Anda sesuai kebutuhan.

Cara menggunakan kontainer di host lokal Anda

Untuk menyusun file Docker, ganti <your-image-name> dengan nama baru gambar, lalu gunakan:

docker build -t <your-image-name> .

Untuk menjalankan gambar, dan menghapusnya saat kontainer berhenti (--rm):

docker run --rm <your-image-name>

Cara menambahkan kontainer ke registri privat

Ikuti langkah-langkah ini untuk menggunakan Dockerfile dan tempatkan gambar baru di registri kontainer privat Anda.

  1. Buat Dockerfile dengan teks dari resep penggunaan kembali. Dockerfile tidak memiliki ekstensi.

  2. Ganti nilai apa pun dalam kurung sudut dengan nilai Anda sendiri.

  3. Buat file menjadi gambar di baris perintah atau terminal, menggunakan perintah berikut. Ganti nilai dalam kurung sudut, <>, dengan nama dan tag kontainer Anda sendiri.

    Opsi tag, -t, adalah cara untuk menambahkan informasi tentang apa yang telah Anda ubah untuk kontainer. Misalnya, nama kontainer modified-LUIS menunjukkan kontainer asli telah berlapis. Nama tag with-billing-and-model menunjukkan cara kontainer Pemahaman Bahasa (LUIS) telah diubah.

    docker build -t <your-new-container-name>:<your-new-tag-name> .
    
  4. Masuk ke Azure CLI dari konsol. Perintah ini membuka penjelajah dan memerlukan autentikasi. Setelah diautentikasi, Anda dapat menutup browser dan terus bekerja di konsol.

    az login
    
  5. Masuk ke registri privat Anda dengan Azure CLI dari konsol.

    Ganti nilai dalam kurung sudut, <my-registry>, dengan nama registri Anda sendiri.

    az acr login --name <my-registry>
    

    Anda juga dapat masuk dengan info masuk docker jika ditetapkan perwakilan layanan.

    docker login <my-registry>.azurecr.io
    
  6. Beri tag kontainer dengan lokasi registri privat. Ganti nilai dalam kurung sudut, <my-registry>, dengan nama registri Anda sendiri.

    docker tag <your-new-container-name>:<your-new-tag-name> <my-registry>.azurecr.io/<your-new-container-name-in-registry>:<your-new-tag-name>
    

    Jika Anda tidak menggunakan nama tag, latest tersirat.

  7. Dorong gambar baru ke registri kontainer privat Anda. Saat Anda melihat registri kontainer privat Anda, nama kontainer yang digunakan dalam perintah CLI berikut akan menjadi nama repositori.

    docker push <my-registry>.azurecr.io/<your-new-container-name-in-registry>:<your-new-tag-name>
    

Langkah berikutnya

Membuat dan menggunakan Azure Container Instance