Yeniden kullanım için kapsayıcı oluşturma

Yeniden kullanılabilen bilişsel hizmetler kapsayıcıları oluşturmak için bu kapsayıcı tariflerini kullanın. Kapsayıcılar, kapsayıcı başlatıldığında gerekli olmaması için bazı veya tüm yapılandırma ayarları ile oluşturulabilir.

Bu yeni kapsayıcı katmanı (ayarlarla) varsa ve yerel olarak test ederseniz kapsayıcıyı bir kapsayıcı kayıt defterine kaydedebilirsiniz. Kapsayıcı başladığında, bu ayarlara yalnızca kapsayıcıda depolanmayan ayarlar gerekecektir. Özel kayıt kapsayıcısı, içindeki bu ayarları geçirmeniz için yapılandırma alanı sağlar.

Docker Run sözdizimi

docker runbu belgedeki örneklerde, ^ satır devamlılık karakteriyle Windows konsolunun olduğu varsayılır. Kendi kullanımı için aşağıdakileri göz önünde bulundurun:

  • Docker Kapsayıcıları hakkında bilginiz yoksa bağımsız değişkenlerin sırasını değiştirmeyin.
  • Windows dışında bir işletim sistemi veya Windows konsolu dışında bir konsolu kullanıyorsanız, konsol ve sisteminiz için doğru konsol/terminal, bağlama için klasör sözdizimini ve satır devamlılık karakterini kullanın. Bilişsel hizmetler kapsayıcısı bir Linux işletim sistemi olduğundan, hedef bağlama bir Linux stili klasör söz dizimini kullanır.
  • docker runörnekler, c: Windows üzerindeki herhangi bir izin çakışmasını önlemek için dizini sürücüden kullanır. Giriş dizini olarak belirli bir dizin kullanmanız gerekiyorsa, Docker hizmeti iznini vermeniz gerekebilir.

Görüntüde yapılandırma ayarları depolama

docker runHer hizmet için örnek komutlar, kapsayıcıda herhangi bir yapılandırma ayarını depolamaz. Kapsayıcıyı bir konsoldan veya kayıt defteri hizmetinden başlattığınızda, bu yapılandırma ayarlarının geçmesi gerekir. Özel kayıt kapsayıcısı, içindeki bu ayarları geçirmeniz için yapılandırma alanı sağlar.

Tarifi yeniden kullan: tüm yapılandırma ayarlarını kapsayıcı ile depola

Tüm yapılandırma ayarlarını depolamak için Dockerfile Bu ayarlarla bir oluşturun.

Bu yaklaşımla ilgili sorunlar:

  • Yeni kapsayıcının özgün kapsayıcısından ayrı bir adı ve etiketi vardır.
  • Bu ayarları değiştirmek için Dockerfile değerlerini değiştirmeniz, görüntüyü yeniden oluşturmanız ve Kayıt defterinize yeniden yayımlamanız gerekir.
  • Birisi kapsayıcı Kayıt defterinize veya yerel ana bilgisayarınıza erişim alırsa, kapsayıcıyı çalıştırabilir ve bilişsel hizmetler uç noktalarını kullanabilir.
  • Bilişsel hizmetiniz giriş takar gerektirmiyorsa, COPY satırları Dockerfile 'a eklemeyin.

Kullanmak istediğiniz mevcut bilişsel hizmetler kapsayıcısından çekerek Dockerfile oluşturun, sonra kapsayıcının ihtiyaç duyacağı bilgileri ayarlamak veya çekmek için Dockerfile içindeki Docker komutlarını kullanın.

Bu örnek:

  • {BILLING_ENDPOINT}Uygulamasının kullanılarak, ana bilgisayarın ortam anahtarından faturalandırma bitiş noktasını ayarlar ENV .
  • Faturalandırma API anahtarını {ENDPOINT_KEY} konağın ortam anahtarından ' env ' kullanarak ayarlar.

Tarifi yeniden kullan: kapsayıcı ile faturalandırma ayarlarını depolayın

Bu örnek, dil hizmetinin yaklaşım kapsayıcısının bir Dockerfile 'dan nasıl oluşturulacağını gösterir.

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

Kapsayıcıyı yerel olarak veya özel kayıt defteri kapsayıcısından gerektiği şekilde derleyin ve çalıştırın.

Tarifi yeniden kullanma: depolama ve bağlama ayarlarını kapsayıcı ile depolayın

Bu örnek, Dockerfile 'dan Language Understanding, faturalandırma ve modellerin nasıl kullanılacağını gösterir.

  • Language Understanding (LUSıS) model dosyasını ana bilgisayarın dosya sisteminden kullanarak kopyalar COPY .
  • LUSıS kapsayıcısı birden fazla modeli destekler. Tüm modeller aynı klasörde depolanıyorsa, hepsi bir deyime gerek duyarsınız COPY .
  • Model giriş dizininin göreli üst öğesinden Docker dosyasını çalıştırın. Aşağıdaki örnekte, docker build docker run öğesinin göreli üst öğesinden ve komutlarını çalıştırın /input . Komutta ilk, /input COPY ana bilgisayarın dizinidir. İkincisi /input kapsayıcının dizinidir.
FROM <container-registry>/<cognitive-service-container-name>:<tag>
ENV billing={BILLING_ENDPOINT}
ENV apikey={ENDPOINT_KEY}
ENV EULA=accept
COPY /input /input

Kapsayıcıyı yerel olarak veya özel kayıt defteri kapsayıcısından gerektiği şekilde derleyin ve çalıştırın.

Yerel ana bilgisayarınızda kapsayıcı kullanma

Docker dosyasını oluşturmak için, <your-image-name> görüntünün yeni adıyla değiştirin ve ardından şunu kullanın:

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

Görüntüyü çalıştırmak ve kapsayıcı durdurulduğunda kaldırmak için ( --rm ):

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

Özel kayıt defterine kapsayıcı ekleme

Dockerfile dosyasını kullanmak ve yeni görüntüyü özel kapsayıcı Kayıt defterinize yerleştirmek için bu adımları izleyin.

  1. DockerfileYeniden kullanım tarifi ' nden metin ile oluşturun. , Dockerfile Uzantısı yoktur.

  2. Açılı ayraçlar içindeki tüm değerleri kendi değerlerinizle değiştirin.

  3. Aşağıdaki komutu kullanarak dosyayı komut satırında veya terminalde bir görüntüde oluşturun. Köşeli parantez içindeki değerleri, <> kendi kapsayıcı adınız ve etiketlerinizle değiştirin.

    Etiket seçeneği, -t kapsayıcı için ne değiştirdikleriniz hakkında bilgi eklemenin bir yoludur. Örneğin kapsayıcı adı, modified-LUIS orijinal kapsayıcının katmanlı olduğunu gösterir. Etiket adı with-billing-and-model , Language Understanding (Luo) kapsayıcısının nasıl değiştirildiğini gösterir.

    docker build -t <your-new-container-name>:<your-new-tag-name> .
    
  4. Bir konsoldan Azure CLı 'da oturum açın. Bu komut bir tarayıcı açar ve kimlik doğrulaması gerektirir. Kimliği doğrulandıktan sonra, tarayıcıyı kapatabilir ve konsolunda çalışmaya devam edebilirsiniz.

    az login
    
  5. Bir konsoldan Azure CLı ile özel kayıt defterinizde oturum açın.

    Açılı ayraçlar içindeki değerleri <my-registry> kendi kayıt defteri adınızla değiştirin.

    az acr login --name <my-registry>
    

    Hizmet sorumlusu atadıysanız de Docker oturum açma ile oturum açabilirsiniz.

    docker login <my-registry>.azurecr.io
    
  6. Kapsayıcıyı özel kayıt defteri konumuyla etiketleyin. Açılı ayraçlar içindeki değerleri <my-registry> kendi kayıt defteri adınızla değiştirin.

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

    Etiket adı kullanmıyorsanız, latest ima edilir.

  7. Yeni görüntüyü özel kapsayıcı Kayıt defterinize gönderin. Özel kapsayıcı kayıt defterinizi görüntülediğinizde, aşağıdaki CLı komutunda kullanılan kapsayıcı adı deponun adı olacaktır.

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

Sonraki adımlar