Yeniden kullanım için kapsayıcı oluşturma
Yeniden kullanılabilecek Azure AI 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ıyla oluşturulabilir.
Bu yeni kapsayıcı katmanına (ayarlarla) sahip olduktan ve yerel olarak test ettikten sonra kapsayıcıyı bir kapsayıcı kayıt defterinde depolayabilirsiniz. Kapsayıcı başlatıldığında, yalnızca şu anda kapsayıcıda depolanmayan ayarlara ihtiyaç duyar. Özel kayıt defteri kapsayıcısı, bu ayarları geçirmeniz için yapılandırma alanı sağlar.
Docker çalıştırma söz dizimi
Bu belgedeki tüm docker run
örneklerde, satır devamlılığı karakterine sahip bir ^
Windows konsolu olduğu varsayılır. Kendi kullanımınız için aşağıdakileri göz önünde bulundurun:
- Docker kapsayıcılarına çok aşina değilseniz 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 konsol kullanıyorsanız, konsolunuz ve sisteminiz için doğru konsolu/terminali, bağlamalar için klasör söz dizimini ve satır devamı karakterini kullanın. Azure AI hizmetleri kapsayıcısı bir Linux işletim sistemi olduğundan, hedef bağlama Linux stilinde bir klasör söz dizimi kullanır.
docker run
örnekler, Windows'ta izin çakışmalarını önlemek için sürücüdekic:
dizini kullanır. Giriş dizini olarak belirli bir dizini kullanmanız gerekiyorsa docker hizmeti izni vermeniz gerekebilir.
Görüntüde yapılandırma ayarları depolama
Her hizmet için örnek docker run
komutlar kapsayıcıda hiçbir yapılandırma ayarı depolamaz. Kapsayıcıyı bir konsoldan veya kayıt defteri hizmetinden başlattığınızda, bu yapılandırma ayarlarının geçirilmesi gerekir. Özel kayıt defteri kapsayıcısı, bu ayarları geçirmeniz için yapılandırma alanı sağlar.
Tarifi yeniden kullanma: Tüm yapılandırma ayarlarını kapsayıcıyla depolama
Tüm yapılandırma ayarlarını depolamak için bu ayarlarla bir Dockerfile
oluşturun.
Bu yaklaşımla ilgili sorunlar:
- Yeni kapsayıcı, özgün kapsayıcıdan ayrı bir ada ve etikete sahiptir.
- 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 elde ederse kapsayıcıyı çalıştırabilir ve Azure AI hizmetleri uç noktalarını kullanabilir.
- Kullandığınız Azure AI hizmeti için giriş bağlaması gerekmiyorsa dockerfile'ınıza satırları eklemeyin
COPY
.
Kullanmak istediğiniz mevcut Azure AI hizmetleri kapsayıcısından çekerek Dockerfile oluşturun, ardından dockerfile içindeki docker komutlarını kullanarak kapsayıcının ihtiyaç duyduğu bilgileri ayarlayın veya alın.
Bu örnek:
- kullanarak
ENV
ana bilgisayarın ortam anahtarından faturalama uç noktasını{BILLING_ENDPOINT}
ayarlar. - 'ENV' kullanarak konağın ortam anahtarından faturalama API anahtarını
{ENDPOINT_KEY}
ayarlar.
Tarifi yeniden kullanma: faturalama ayarlarını kapsayıcıyla depolama
Bu örnekte, Dockerfile'dan Language hizmetinin yaklaşım kapsayıcısının nasıl derlenmiyor olduğu gösterilmektedir.
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ınızdan gerektiği gibi derleyin ve çalıştırın.
Tarifi yeniden kullanma: faturalama ve bağlama ayarlarını kapsayıcı ile depolama
Bu örnekte, Language Understanding'in nasıl kullanılacağı, faturalamanın ve modellerin Dockerfile'dan nasıl kaydedildiği gösterilmektedir.
- Language Understanding (LUIS) model dosyasını kullanarak
COPY
konağın dosya sisteminden kopyalar. - LUIS kapsayıcısı birden fazla modeli destekler. Tüm modeller aynı klasörde depolanıyorsa, tek bir
COPY
deyim gerekir. - Model giriş dizininin göreli üst öğesinden docker dosyasını çalıştırın. Aşağıdaki örnek için öğesinin
docker build
göreli üst/input
öğesinden vedocker run
komutlarını çalıştırın. Komutun ilki/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ınızdan gerektiği gibi derleyin ve çalıştırın.
Kapsayıcıyı yerel konağınızda kullanma
Docker dosyasını oluşturmak için öğesini görüntünün yeni adıyla değiştirin <your-image-name>
ve ardından şunu kullanın:
docker build -t <your-image-name> .
Görüntüyü çalıştırmak ve kapsayıcı durduğunda kaldırmak için (--rm
):
docker run --rm <your-image-name>
Özel kayıt defterine kapsayıcı ekleme
Dockerfile'ı kullanmak ve yeni görüntüyü özel kapsayıcı kayıt defterinize yerleştirmek için bu adımları izleyin.
Yeniden kullanım tarifinden metin içeren bir
Dockerfile
oluşturun. ADockerfile
uzantısına sahip değildir.Köşeli ayraçlardaki tüm değerleri kendi değerlerinizle değiştirin.
Aşağıdaki komutu kullanarak dosyayı komut satırında veya terminalde bir görüntü halinde oluşturun. köşeli ayraçlarındaki
<>
değerleri kendi kapsayıcı adınız ve etiketinizle değiştirin.etiket seçeneği,
-t
kapsayıcı için neleri değiştirdiğiniz hakkında bilgi eklemenin bir yoludur. Örneğin, kapsayıcı adımodified-LUIS
özgün kapsayıcının katmanlandığını gösterir. etiket adıwith-billing-and-model
, Language Understanding (LUIS) kapsayıcısının nasıl değiştirildiğini gösterir.docker build -t <your-new-container-name>:<your-new-tag-name> .
Konsoldan Azure CLI'da oturum açın. Bu komut bir tarayıcı açar ve kimlik doğrulaması gerektirir. Kimlik doğrulamasından geçtikten sonra tarayıcıyı kapatabilir ve konsolda çalışmaya devam edebilirsiniz.
az login
Konsoldan Azure CLI ile özel kayıt defterinizde oturum açın.
köşeli ayraçlarındaki
<my-registry>
değerleri kendi kayıt defteri adınızla değiştirin.az acr login --name <my-registry>
Ayrıca size bir hizmet sorumlusu atanmışsa docker oturum açma bilgileriyle de oturum açabilirsiniz.
docker login <my-registry>.azurecr.io
Kapsayıcıyı özel kayıt defteri konumuyla etiketleyin. köşeli ayraçlarındaki
<my-registry>
değerleri 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ı kullanmazsanız,
latest
bu örtülüdür.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 CLI komutunda kullanılan kapsayıcı adı deponun adı olur.
docker push <my-registry>.azurecr.io/<your-new-container-name-in-registry>:<your-new-tag-name>