Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows kapsayıcı platformu genişliyor! Kapsayıcı yolculuğunun ilk parçası Docker'dı, şimdi de diğer kapsayıcı platformu araçlarını oluşturuyoruz.
- containerd/cri - Windows Server 2019/Windows 10 1809'da yeni.
- runhcs - runc'a karşılık gelen bir Windows kapsayıcı hostu.
- hcs - Kullanımı kolaylaştırmak için Konak İşlem Hizmeti + kullanışlı dolgular.
Bu makalede Windows ve Linux kapsayıcı platformunun yanı sıra her kapsayıcı platformu aracı hakkında da bilgi verilecektir.
Windows ve Linux kapsayıcı platformu
Linux ortamlarında, Docker gibi kapsayıcı yönetim araçları daha ayrıntılı bir kapsayıcı araçları kümesi üzerinde oluşturulur: runc ve containerd.
runc, OCI kapsayıcı çalışma zamanı belirtimine göre, kapsayıcılar oluşturmaya ve çalıştırmaya yönelik bir Linux komut satırı aracıdır.
containerd, kapsayıcı görüntüsünü indirip açmaktan kapsayıcı yürütme ve denetime kadar kapsayıcı yaşam döngüsünü yöneten bir daemon'dır.
Windows'ta farklı bir yaklaşım benimsedik. Windows kapsayıcılarını desteklemek için Docker ile çalışmaya başladığımızda, doğrudan HCS (Konak İşlem Hizmeti) üzerine inşa ettik. Bu blog gönderisi, HCS'yi neden oluşturduğumuz ve başlangıçta kapsayıcılara neden bu yaklaşımı benimsediğimiz hakkında bilgilerle doludur.
Windows'da 
Bu noktada Docker yine de doğrudan HCS'ye çağrı yapar. Ancak bundan sonra, Windows kapsayıcılarını ve Windows kapsayıcı konaklarını içerecek şekilde genişletilen kapsayıcı yönetimi araçları, containerd ve runhcs'yi Linux üzerindeki containerd ve runc'de çağırdıkları şekilde çağırabilir.
runhcs
runhcs, runc'in çatallanmasıdır.
runcgibi runhcs de Open Container Initiative (OCI) biçimine göre paketlenmiş uygulamaları çalıştırmak için kullanılan bir komut satırı istemcisidir ve Open Container Initiative belirtiminin uyumlu bir uygulamasıdır.
Runc ve runhc'ler arasındaki işlevsel farklar şunlardır:
runhcsWindows üzerinde çalışır. Kapsayıcı oluşturmak ve yönetmek için HCS ile iletişim kurar.runhcsçeşitli kapsayıcı türlerini çalıştırabilir.- Windows ve Linux Hyper-V yalıtım
- Windows işlem kapsayıcıları (kapsayıcı görüntüsü kapsayıcı konağıyla eşleşmelidir)
Kullanımı:
runhcs run [ -b bundle ] <container-id>
<container-id>, başlatmakta olduğunuz kapsayıcı örneğinin adınızdır. Konaklayıcı sunucunuzda adın benzersiz olması gerekir.
Paket dizini (-b bundlekullanılarak) isteğe bağlıdır.
Runc'de olduğu gibi kapsayıcılar da paketler kullanılarak yapılandırılır. Bir kapsayıcının paketi, kapsayıcının OCI belirtimini içeren dizindir, "config.json". "Paket" için varsayılan değer geçerli dizindir.
"config.json" OCI belirtim dosyasının doğru çalışması için iki alan olması gerekir:
- Kapsayıcının karalama alanına giden yol
- Kapsayıcının katman dizinine giden yol
Runhc'lerde kullanılabilen kapsayıcı komutları şunlardır:
Kapsayıcı oluşturma ve çalıştırma araçları
- bir kapsayıcı oluşturur ve çalıştırır
- oluştur kapsayıcı oluştur
Kapsayıcıda çalışan işlemleri yönetme araçları:
- başlatma oluşturulan kapsayıcıda kullanıcı tanımlı işlemi yürütür
- exec kapsayıcı içinde yeni bir işlem çalıştırır
- duraklat duraklatma kapsayıcı içindeki tüm işlemleri askıya alır
- sürdür daha önce duraklatılmış olan tüm işlemleri sürdürür
- ps ps kapsayıcı içinde çalışan işlemleri görüntüler
Kapsayıcının durumunu yönetme araçları
- durumu bir kapsayıcının durumunu çıkarır
- sonlandırma belirtilen sinyali (varsayılan: SIGTERM) kapsayıcının başlatma işlemine gönderir
- sil genellikle ayrık kapsayıcıda kullanılan kapsayıcı tarafından tutulan tüm kaynakları siler
Birden çok kapsayıcı olarak kabul edilebilecek tek komut, listesidir. Verilen kökle runhcs tarafından başlatılan çalışan veya duraklatılmış kapsayıcılar listelenir.
HCS
HCS ile arabirim sağlamak için GitHub'da iki sarmalayıcımız var. HCS bir C API'si olduğundan, sarmalayıcılar HCS'yi daha üst düzey dillerden çağırmayı kolaylaştırır.
- hcsshim - HCSShim Go dilinde yazılır ve runhc'lerin temelini oluşturur. AppVeyor'dan en son sürümü alın veya kendiniz derleyin.
- dotnet-computevirtualization - dotnet-computevirtualization, HCS için bir C# sarmalayıcısıdır.
HCS'yi kullanmak istiyorsanız (doğrudan veya sarmalayıcı aracılığıyla) veya HCS çevresinde Rust/Haskell/InsertYourLanguage sarmalayıcı yapmak istiyorsanız, lütfen bir açıklama bırakın.
HCS'ye daha ayrıntılı bir bakış için John Stark'ın DockerCon sunusunun izleyin.
containerd/cri
Önemli
CRI desteği yalnızca Windows Server 2019/Windows 10 1809 ve sonraki sürümlerde kullanılabilir.
OCI belirtimleri tek bir kapsayıcı tanımlasa da CRI (kapsayıcı çalışma zamanı arabirimi), kapsayıcıları, pod denilen paylaşılan korumalı alan ortamlarında iş yükleri olarak tanımlar. Podlar, bir veya daha fazla kapsayıcı iş yükü içerebilir. Podlar, Kubernetes ve Service Fabric Mesh gibi kapsayıcı düzenleyicilerinin bellek ve vNET gibi bazı paylaşılan kaynaklarla aynı konakta olması gereken gruplandırılmış iş yüklerini işlemesine olanak tanır.
RunHCS ve containerd her ikisi de herhangi bir Windows sistemi Server 2016 veya daha yenisinde yönetilebilirken, Pod'ları desteklemek Windows'taki kapsayıcı araçlarında köklü değişiklikler yapılmasını gerektiriyordu. CRI desteği Windows Server 2019/Windows 10 1809 ve sonraki sürümlerde kullanılabilir.