Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Docker

Docker; kodu, kitaplıkları ve model ağırlıklarını dizüstü bilgisayarlarda, GPU sunucularında, CI çalıştırıcılarında ve uç cihazlarda aynı şekilde çalışan kapsayıcı görüntülerinde paketler.

Docker, uygulamaları kapsayıcılarda oluşturmak, paylaşmak ve çalıştırmak için kullanılan açık kaynaklı bir platformdur: kapsayıcılar, kodu, kütüphaneleri ve sistem paketlerini içeren kendi dosya sistemlerine sahip yalıtılmış süreçlerdir ve ana makinenin işletim sistemi çekirdeğini paylaşırlar. Daha sonra adını Docker, Inc. olarak değiştiren dotCloud şirketi, platformu Mart 2013'te açık kaynaklı hâle getirdi; komut satırı aracı, katmanlı görüntü biçimi ve herkese açık kayıt defteri, Linux kapsayıcılarını geliştiricilerin gündelik araçlarından biri yaptı. Makine öğreniminde bir Docker görüntüsü, tam Python sürümünü, CUDA kütüphanelerini, PyTorch derlemesini ve model ağırlıklarını sabitler; böylece model bir dizüstü bilgisayarda, GPU sunucusunda, sürekli entegrasyon çalıştırıcısında ve uç cihazda aynı şekilde davranır.

Docker Nasıl Çalışır#

Bir Dockerfile, görüntüyü oluşturan adımları listeler: başlangıçta kullanılacak bir temel görüntü, paketleri yükleyen komutlar, kopyalanacak dosyalar ve başlangıçta çalıştırılacak komut. Her RUN, COPY veya ADD yönergesi salt okunur bir katman ekler; sonraki derleme, bir yönerge ya da onun giriş dosyalarından biri değişene kadar önbelleğe alınmış katmanları yeniden kullanır. Böylece erken yüklenen bağımlılıklar önbellekte kalırken uygulama kodu saniyeler içinde yeniden derlenir. Görüntü, bu katman yığınına üst verilerin eklenmiş hâlidir. Kapsayıcı ise görüntünün üzerinde ince bir yazılabilir katman bulunan çalışan örneğidir; veriler bağlanmış bir birime yazılmadığı sürece kapsayıcı silindiğinde bu katman da silinir.

docker komutu, her kapsayıcıyı containerd'ye ve düşük seviyeli runc çalışma zamanına devreden arka plan hizmeti Docker Engine ile iletişim kurar. Bunlar, kapsayıcının süreçlerini, ağını ve dosya sistemini yalıtmak için Linux ad alanlarını; CPU ve bellek kullanımını sınırlamak içinse cgroups'u kullanır. Görüntüler Docker Hub, GitHub Container Registry, NVIDIA NGC ve her bulut sağlayıcısının kendi kayıt defteri gibi kayıt defterleri üzerinden paylaşılır. Görüntüler, Open Container Initiative görüntü biçimini izler; bu nedenle Podman, containerd ve Kubernetes görüntüleri değiştirmeden çalıştırabilir.

Ultralytics, CUDA GPU'ları, CPU'lar, ARM64 kartlar, NVIDIA Jetson cihazları ve AMD GPU'ları dâhil her donanım hedefi için resmî Docker görüntüleri yayımlar; yeniden üretilebilir derlemeler için her görüntü Ultralytics sürüm numarasıyla da etiketlenir. Aşağıda kullanılan hafif latest-python görüntüsü Python, PyTorch, ultralytics paketi ve YOLO26 nano ağırlıklarını zaten içerir; bu nedenle projenin Dockerfile'ına yalnızca kendi kodunu eklemen yeterlidir:

# Official Ultralytics CPU image with Python, PyTorch, ultralytics, and yolo26n.pt
FROM ultralytics/ultralytics:latest-python

# Install extra dependencies in their own layer, cached until requirements.txt changes
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Copy the application last, so code edits rebuild only this layer
COPY app.py .

# Command every container runs when it starts
CMD ["python", "app.py"]

docker build -t yolo-app . bu dosyayı ve yanındaki dosyaları bir görüntüye dönüştürür; docker run --rm yolo-app ise bu görüntüden bir kapsayıcı başlatır. Görüntüyü bir kayıt defterine gönderdiğinde, başka herhangi bir makine aynı ortamı çekip çalıştırabilir; örneğin bir model sunma API'si veya her gece çalışan bir çıkarım işi olarak.

Makine Öğrenimi için Docker#

Kapsayıcılar GPU'lara NVIDIA Container Toolkit üzerinden erişir. NVIDIA sürücüsü ana makinede kalır, görüntü ise yalnızca sürücü tarafından desteklenmesi gereken CUDA kullanıcı alanı kütüphanelerini içerir. Linux'ta Docker 28.2 ve sonraki sürümlerde CDI varsayılan olarak etkindir; bu nedenle --device nvidia.com/gpu=all, GPU'ları CDI cihazları olarak ister ve eski --gpus all bayrağının ana makine systemd'yi yeniden yüklediğinde kaybedebileceği GPU erişimini uzun süre çalışan kapsayıcılarda korur.

Eğitim için iki ayar daha önemlidir. PyTorch veri yükleyici çalışanları, grupları eğitim sürecine /dev/shm içindeki paylaşılan bellek üzerinden iletir; Docker bu belleği varsayılan olarak 64 MB ile sınırlar. Bu nedenle eğitim kapsayıcıları --ipc=host veya daha büyük bir --shm-size ile çalıştırılır. Veri kümeleri ve çıktılar bağlanmış birimlerde tutulmalıdır; çünkü denetim noktalarını kapsayıcının içine yazan bir eğitim çalıştırmasının çıktıları, kapsayıcı kaldırıldığında kaybolur. latest yerine bir sürüm etiketi ya da görüntü özeti sabitlemek, dağıtık eğitim işinin veya model dağıtımının her makinede aynı görüntüyü kullanmasını sağlar; hem NVIDIA Triton Inference Server gibi çıkarım sunucuları hem de Vertex AI gibi yönetilen hizmetler modelleri kapsayıcı görüntüleri olarak çalıştırır.

Docker, Sanal Makineler ve Kubernetes Karşılaştırması#

  • Sanal makineler: Bir hipervizör donanımı taklit eder ve her VM kendi konuk çekirdeğini başlatır. Bu, iş yüklerini daha güçlü biçimde yalıtır ve herhangi bir konuk işletim sisteminin kullanılmasına olanak tanır; ancak her VM için tam bir işletim sistemi görüntüsü gerekir ve başlatma süresi uzar. Kapsayıcılar ana makinenin Linux çekirdeğini paylaştığından, macOS ve Windows'taki Docker Desktop bunları hafif bir Linux VM içinde çalıştırır.
  • Docker Compose: Çıkarım API'si, önbellek ve metrik toplayıcı gibi aynı ana makinede birlikte çalışan birden çok kapsayıcıyı tanımlar.
  • Kubernetes: Kapsayıcıları bir kümede zamanlar, arızalananları yeniden başlatır ve çoğaltma sayısını trafiğe göre ölçeklendirir. Kubernetes 1.24, Docker Engine için yerleşik bağdaştırıcısı olan dockershim'i kaldırdı; bu nedenle kümeler kapsayıcıları containerd veya CRI-O üzerinden çalıştırır. Docker ile oluşturulmuş görüntüler standart OCI görüntüleri oldukları için burada da çalışır.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla