Yönetici Özeti ve Mimari Önem
Docker'ın Sandbox Kit Belirtimi v3 sürümü, geliştiricilerin otonom yapay zeka ajanlarını ve karmaşık, olasılıksal iş yüklerini ele alma biçiminde derin bir değişim göstermektedir. Geleneksel konteynerleştirme modelleri, deterministik uygulamalar için olağanüstü olmakla birlikte, kendi yürütme yollarını yeniden yazabilen, sistem çağrılarını inceleyen ve doğrulanmamış bağımlılıklar yükleyebilen ajanlarla karşılaşıldığında yetersiz kalan paylaşımlı çekirdek mimarilerine (ad alanları ve cgroup'lar) dayanır. Docker Sandbox Kit Belirtimi v3, uygulama paketleme ile yürütme sınırlarını birbirinden ayırarak bu boşluğu kapatır ve yürütme hasarının kesin olarak yalıtılmasını garanti etmek için alttaki mikro sanal makinelere (microVM) güvenir.
Özünde bir Kit, uygulama çalışma zamanı ile operasyonel ayrıcalıkları arasındaki eksik köprüyü oluşturur. Bir Dockerfile yazılım oluşturmayı ve temel yapılandırmayı tanımlarken; geçmişte kırılgan docker run bayraklarına, belgelenmemiş kabuk geçmişlerine ve CI boru hatlarına dağılmış olan ortamı (ağlar, kimlik bilgileri, birimler ve çağrı bağlamları) tamamen dışarıda bırakır. Docker, Kitleri vnd.docker.sandbox.kit.descriptor bildirim ek açıklaması (manifest annotation) kullanarak sıradan Open Container Initiative (OCI) imajları olarak yeniden mimari edip tasarlayarak; güvenlik politikalarının, izinlerin ve ajan bağımlılıklarının konteyner imajıyla birlikte atomik olarak seyahat etmesini sağlar. Bu, uyumlu herhangi bir OCI uyumlu çalışma zamanı altyapısında tutarlı çalışma zamanı davranışını ve deterministik uygulamayı garanti eder.
Temel Geliştirmeler ve Geliştirici Ergonomisi
v3'e geçiş, yetenek tabanlı güvenliğe ve değişmez şifreli özetlere (cryptographic digests) odaklanan dönüştürücü bir geliştirici ergonomisi sunar. Bir Kit artık sıradan bir OCI yapısı olduğundan, geliştiriciler docker buildx build aracılığıyla yerel olarak imajlar oluşturabilir, standart docker pull mekanizmalarını kullanarak bunları sorunsuz bir şekilde dağıtabilir ve mevcut güvenlik açığı taraması ve konteyner imzalama boru hatlarına entegre edebilir. Güvenlik tanımları; ağ politikaları, kimlik bilgisi vekili (proxying) ve birim bağlamaları gibi izinleri açıkça beyan eden hassas, insan tarafından okunabilir YAML yapılandırmalarıyla ifade edilir. Bu, her konteyner başlatma işlemini, ana bilgisayarın mutlak veto yetkisini elinde tuttuğu doğrulanabilir bir izin belgesine dönüştürür.
Ek olarak, Kit kompozisyonu, sıralı bir parametre enjeksiyonu yerine işlevsel bir bağımlılık grafiği olarak çalışacak şekilde temelden yeniden tasarlanmıştır. Belirli CLI yeteneklerini, ağ kurallarını veya ajan bağlamını ekleyen modüler kaplamalar olan iş yükleri ve mixin'ler, provides ve requires beyanları aracılığıyla dinamik olarak çözümlenir. Bu katı çözümleme mekanizması, gölge geçersiz kılmalarını ve deterministik olmayan bayrak sıralama hatalarını ortadan kaldırır. İki Kit çelişkili gereksinimler veya uyumsuz geçersiz kılmalar sunarsa, çözümleyici derleme zamanında derlemeyi durdurur. Bu, güvenlik doğrulamasını kırılgan çalışma zamanı sürprizlerinden anında, derleme zamanı geri bildirim döngülerine dönüştürür.
Mimari Karşılaştırma Matrisi
| Özellik Boyutu | Önceki Temel Çizgi (Dockerfiles ve Compose) | Docker Sandbox Kit Belirtimi v3 | Mimari Etki |
|---|---|---|---|>
| Yalıtım Sınırı | Ad alanları ve cgroup'lar aracılığıyla paylaşılan çekirdek | Özel çekirdeğe sahip donanım düzeyinde mikroVM | Otonom ajanlar tarafından gerçekleştirilen çekirdek inceleme istismarlarını ortadan kaldırır |
| İzin Yönetimi | Sürümlenmemiş CLI bayrakları, ortam değişkenleri, manuel betikler | Türü belirtilmiş, sürümlenmiş YAML yetenek manifestleri (provides/requires) | Örtük ortam kurulumunu denetlenebilir, doğrulanabilir yetkilere dönüştürür |
| Yapı Dağıtımı | Yan birim (sidecar) yapılandırma dosyaları, parçalanmış Compose dosyaları | vnd.docker.sandbox.kit.descriptor aracılığıyla yerel OCI imaj manifesti | Paketlemeyi, dağıtımı, taramayı ve özetleri tek bir yapıda birleştirir |
| Kompozisyon Mantığı | Doğrusal kalıtım (FROM), sıralı geçersiz kılma bayrakları | İşlevsel bağımlılık grafiği çözümlemesi | Deterministik, çakışmasız çoklu mixin birleştirmeyi garanti eder |
Kritik Değişiklikler ve Geçiş Uyarıları
Docker Sandbox Kit Belirtimi v3, daha önceki deneysel sbx yapı formatlarına göre bilinçli ve kritik değişiklikler sunar. Önceki yinelemeler, özel kayıt defteri desteği gerektiren özel yan birim dosyalarına veya özel medya türlerine dayanıyordu. v3'te, bu eski formatlar, vnd.docker.sandbox.kit.descriptor ek açıklamasını kullanan standart OCI imaj manifestoları lehine tamamen kullanım dışı bırakılmıştır. Mevcut özel yapılar, güncellenmiş buildx araçları kullanılarak OCI uyumlu imaj düzenlerinde yeniden paketlenmelidir. Ek olarak, v3 spesifikasyonunu uygulamayan çalışma zamanları, yeni güvenlik ek açıklamalarını etkisiz meta veriler olarak ele alacak ve bu da yetenek uygulamasını etkili bir şekilde devre dışı bırakacaktır. v3'e geçiş yapan ekipler, üretim ajan iş yüklerini göndermeden önce hedef çalışma zamanlarının tamamen uyumlu olduğundan emin olmak için mevcut dağıtım boru hatlarını denetlemelidir.
Adım Adım Yükseltme Kılavuzu
Konteynerleştirilmiş iş yüklerinizi Sandbox Kit Belirtimi v3'ten yararlanacak şekilde dönüştürmek, güvenlik gereksinimlerinizi doğrudan OCI imaj tanımlarınızda yapılandırmayı içerir. Uyumlu ilk Kit'inizi oluşturmak ve çalıştırmak için şu adımları izleyin:
- Yetenek Manifestinizi Tanımlayın: Yapı oluşturma alanınızda açık ağ ve kimlik bilgisi kısıtlamalarını hedefleyen bir yetenek yapılandırması oluşturun. Örneğin, giden API erişimini kısıtlama:
capabilities:
- type: com.docker.sandbox/network-policy@2
config:
runtime:
allow:
- hosts: [api.github.com]
methods: [GET, POST]
deny:
- hosts: [api.github.com]
methods: [DELETE]
- Buildx ile OCI İmajını Oluşturun: Docker Buildx kullanarak iş yükünüzü ve gömülü yetenek manifestinizi tek bir OCI uyumlu imaj yapısında derleyin:
docker buildx build --annotation vnd.docker.sandbox.kit.descriptor=true -t my-org/agent-kit:v3 .
- Uyumlu Bir Çalışma Zamanı ile Dağıtın: İmajı uyumlu bir Docker Sandbox ortamında yürütün, ana bilgisayar çalışma zamanının beyan edilen yetenek yetkilerini kesmesine ve uygulamasına izin verin:
docker run --runtime=com.docker.sandbox.runtime my-org/agent-kit:v3
