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,
COPYsatı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ı ayarlarENV.- 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 builddocker runöğesinin göreli üst öğesinden ve komutlarını çalıştırın/input. Komutta ilk,/inputCOPYana bilgisayarın dizinidir. İkincisi/inputkapsayı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.
DockerfileYeniden kullanım tarifi ' nden metin ile oluşturun. ,DockerfileUzantısı yoktur.Açılı ayraçlar içindeki 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ü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,
-tkapsayıcı için ne değiştirdikleriniz hakkında bilgi eklemenin bir yoludur. Örneğin kapsayıcı adı,modified-LUISorijinal 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> .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 loginBir 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.ioKapsayı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,
latestima edilir.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>