Kurs
docker pull komutu kendini açıklıyor gibi görünse de, perde arkasında deneyimli uzmanların bile bilmediği pek çok şey olur.
Bunu her geliştiricinin bilmesi gerekir. Her gün görüntü çekiyorsunuz, ancak bir şey bozulduğunda neden olduğunu saptamak zor. Ya sebepsiz yere kimlik doğrulama başarısız olur, ya oran sınırlamaları devreye girer, ya da üretimde yanlış görüntü sürümüyle kalırsınız. Her başarısızlık, aslında hiç yaşanmaması gereken bir sorunu düzeltmek için gününüzden zaman çalar.
docker pull'un gerçekte nasıl çalıştığını anlamak size kontrol sağlar. Görüntülerin nereden geldiğini, nasıl çekileceğini ve üretime ulaşmadan önce sorunların nasıl giderileceğini bilirsiniz.
Bu yazıda, görüntü çekmenin perde arkasında nasıl çalıştığını, kayıt defterlerinin nasıl devreye girdiğini ve görüntüleri hem yerel geliştirme hem de üretim ortamlarında nasıl çekeceğinizi açıklayacağım.
Docker’a tamamen yeniyseniz, bu yazıyı anlamak için gereken temelleri kapsadığı için Introduction to Docker kursumuza göz atmanızı özellikle öneririm.
docker pull Kaputun Altında Nasıl Çalışır
Bu bölümde, docker pull komutunun mekaniklerini ele alacak ve arka planda neler olduğuna dair olası karışıklıkları gidereceğim.
Bir docker pull sırasında neler olur
Temel sözdizimi basittir:
docker pull python:3.14.2-bookworm

Bu komut varsayılan olarak Docker Hub ile konuşur, Python görüntüsünü indirir ve yerel makinenizde saklar. Ancak göründüğünden daha fazlası gerçekleşir.
Akış şöyle:
-
Docker istemciniz kayıt defterine (aksi belirtilmedikçe Docker Hub) bir istek gönderir
-
Kayıt defteri, görüntüyü oluşturan tüm katmanları listeleyen imaj manifesti ile yanıt verir
- İstemciniz, halihazırda sahip olmadığınız her katmanı indirir ve Linux sistemlerde
/var/lib/dockeriçine, Docker Desktop tarafından yönetilen dizinlere (örneğin macOS’ta~Library/Containers/…altında ve Windows’taC:\Users\[Username]\AppData\...altında) kaydeder.
:latest etiketi, bir sürüm belirtmediğinizde Docker’ın varsayılanıdır. Etiket olmadan docker pull python çalıştırırsanız, python:latest alırsınız. Kulağa kullanışlı gelse de risklidir. :latest etiketi “en güncel kararlı sürüm” demek değildir. “Görüntü bakımcısının latest olarak etiketlediği şey” demektir. Çekimler arasında bu değişebilir ve uyarı olmadan derlemelerinizi bozabilir.
Görüntü katmanları ve içerik adreslenebilir depolama
Docker görüntüleri katmanlardan oluşturulur.
Her katman bir önceki katmandan bir değişikliği temsil eder. Bir görüntü oluştururken, Dockerfile’ınızdaki her RUN, COPY veya ADD talimatı yeni bir katman oluşturur. Nihai görüntü, sırasıyla birleştirilmiş bu katmanların yığıtıdır.
Örneğin, yukarıdaki Python 3.14 görüntüsünün arkasındaki komutlara bakın — epey şey oluyor.
İçerik adreslenebilir depolama bunu mümkün kılar. Her katman, içeriğine göre benzersiz bir özet (hash) alır. İki görüntü aynı temel katmanı paylaşıyorsa (örneğin ubuntu:24.04), Docker o katmanı yalnızca bir kez depolar. Aynı tabanı kullanan yeni bir görüntü çektiğinizde Docker onu indirmeyi atlar.
Bu, bant genişliği ve depolama tüketimini azaltır. Farklı etiketlere sahip on Python görüntüsü çekin; Docker hepsinde ortak katmanları yeniden kullanır. Yalnızca gerçekten farklı olanları indirirsiniz.
docker pull ve docker image pull
Her iki komut da işlevsel olarak aynıdır. Kayıt defterlerinden görüntü çeker ve yerelde saklar.
Fark organizasyoneldir. Docker, komutları daha sezgisel hale getirmek için docker image komut grubunu tanıttı. docker pull, docker rmi ve docker images ayrı durmak yerine, görsellerle ilgili komutları docker image pull, docker image rm ve docker image ls altında grupladılar.
Hangisini isterseniz kullanın. docker pull daha kısadır ve dokümantasyonda daha yaygındır. docker image pull daha açıktır ve netliğin önemli olduğu betiklerde daha iyi oturur. Ekibiniz genelinde bir stil seçip ona bağlı kalın.
Docker görüntü referansları açıklaması
Bir görüntü referansı en fazla beş parçadan oluşur: HOST/NAMESPACE/REPOSITORY:TAG@DIGEST.
Her parçanın anlamı şudur:
-
HOST: Kayıt defteri adresi (ör.
docker.io,gcr.io,quay.io). Bunu atlayın, Docker varsayılan olarak Docker Hub’ı kullanır. -
NAMESPACE: Genellikle kullanıcı adınız veya kuruluşunuz (ör. resmi görüntüler için
libraryya da özel görüntüler içinmycompany). -
REPOSITORY: Asıl görüntü adı (ör.
python,nginx,redis). -
TAG: Sürüm tanımlayıcısı (ör.
3.14.2-bookworm, latest). Atlanırsa varsayılan:latestolur. -
DIGEST: Görüntü manifestinin bir SHA256 özeti (ör.
@sha256:abc123...). Bu değişmezdir — etiketler değişebilir, özetler değişmez.
Çoğu çekme işlemi şöyle görünür:
docker pull python:3.14.2-bookworm
Bu, perde arkasında docker.io/library/python:3.14.2-bookworm olarak genişletilir.
Özel kayıt defterleri için tam referansa ihtiyacınız var:
docker pull myregistry.example.com/myteam/myimage
Kesin referanslar (belirli etiketler veya özetler) kullanmak dağıtımlarınızı yeniden üretilebilir kılar. Bugün ve gelecek ay python:3.14.2-bookworm çekerseniz aynı görüntüyü alırsınız. python:latest’i iki kez çekerseniz, büyük olasılıkla almazsınız.
Docker Kayıt Defterleri ve Görüntüler Nereden Gelir
Kayıt defterleri, Docker’ın görüntüleri depolayıp dağıttığı yerdir — çalıştırdığınız her docker pull komutunun kaynağıdır.
Varsayılan kayıt defteri olarak Docker Hub
Aksi belirtilmedikçe tüm docker pull komutları için varsayılan kayıt defteri Docker Hub’dır.
docker pull python:3.14.2-bookworm çalıştırın; Docker bunu otomatik olarak docker.io/library/python:3.14.2-bookworm olarak çevirir. Genel görüntüler için oturum açmanız gerekmez — Docker Hub onları anonim olarak sunar; ancak kimliği doğrulanmamış kullanıcılar için oran sınırlamaları vardır.
Docker Hub’da iki tür görüntü vardır: Resmi Görüntüler ve topluluk görüntüleri.
-
Resmi Görüntüler, doğrulanmış yayıncılardan gelir ve Docker veya yazılım satıcılarının kendileri tarafından bakımı yapılır.
libraryad alanında bulunurlar (Docker bunu sizden gizler).python,nginxveyaredisçektiğinizde, güvenlik ve düzenli güncellemeler için Docker’ın en iyi uygulamalarını izleyen Resmi Görüntüler alırsınız. -
Topluluk görüntüleri diğer her şeydir. Herkes Docker Hub’a kullanıcı adı veya kuruluşu altında görüntü yayınlayabilir.
johndoe/python-customçekerseniz, o görüntünün düzgün şekilde bakımını yapması için johndoe’ya güvenirsiniz. Bazı topluluk görüntüleri harika ve iyi bakımlıdır. Bazıları ise yıllardır güncellenmemiştir ve bilinen güvenlik açıkları içerir.
Burada güven kritik öneme sahiptir. Resmi Görüntüler düzenli güvenlik yamaları alır ve net dokümantasyona sahiptir. Ancak topluluk görüntülerinde, bunları kimin bakımını yaptığına ve kullanıma uygun olup olmadığına dair doğrulamayı kendiniz yapmak zorundasınız.
Özel ve özel amaçlı kayıt defterleri
Çoğu şirket, konteyner görüntülerinin herkese açık Docker Hub’da durmasını istemez.
İş özel kayıt defterlerindedir. Kimlerin görüntü çekebileceğine siz karar verirsiniz, saklama ilkelerini kontrol edersiniz ve mülkiyetli kodu altyapınız içinde tutarsınız. Bu, uyumluluk, güvenlik ve ekipler arası erişimi yönetmek için önemlidir.
Yaygın özel kayıt defteri çözümleri şunları içerir:
- Harbor: Yerleşik güvenlik taraması ve erişim denetimine sahip açık kaynak kayıt defteri
- JFrog Artifactory: Docker görüntülerinin yanı sıra diğer yapıt türlerini de yöneten kurumsal çözüm
- Bulut kayıt defterleri: AWS ECR, Google Container Registry (GCR), Azure Container Registry (ACR)
Elbette, özel bir kayıt defteri kullandığınızda görüntü referansları değişir. python:3.14.2-bookworm yerine artık tam yolu belirtmeniz gerekir:
docker pull myregistry.company.com/team/python:3.14.2-bookworm
Kayıt defteri ana makine adı önce gelir, ardından ad alanınız (genellikle bir ekip veya proje adı), sonra depo ve etiket. Docker, özel bir ana makine adı gördüğünde Docker Hub’a varsayılan geçiş yapmaz — doğrudan özel kayıt defterinize gider.
Kimlik Doğrulama, Oran Sınırları ve Erişim Denetimi
Kimlik doğrulama hem görüntü gönderme hem de çekme içindir ve özellikle oran sınırlamalarına takıldığınızda veya özel kayıt defterlerine erişirken önem kazanır.
Oturum açma ve kimlik bilgilerini yönetme
docker login komutunu kullanarak bir kayıt defterinde kimlik doğrulaması yapabilirsiniz:
docker login
Bu, Docker Hub kullanıcı adınızı ve parolanızı ister. Özel kayıt defterleri için ana makine adını belirtmeniz yeterlidir:
docker login myregistry.company.com

Docker, oturum açtıktan sonra kimlik bilgilerinizi yerelde saklar. Linux’ta ~/.docker/config.json içine kaydedilir. macOS’ta daha iyi güvenlik için sistem anahtarlığını kullanır.
Sorun şu ki, yapılandırma dosyası varsayılan olarak kimlik bilgilerini şifreleme olmayan base64 kodlamasıyla saklar. Ana dizininize erişimi olan herkes bunları çözebilir. Bunu azaltmak için kimlik bilgisi yardımcısı kullanabilirsiniz — Docker, parolaları güvenli şekilde saklayan yerel işletim sistemi anahtarlıklarını destekler.
İşte kimlik bilgisi yönetimi için birkaç en iyi uygulama:
-
Kimlik bilgisi yardımcılarını kullanın (docker-credential-osxkeychain, docker-credential-wincred)
-
config.jsondosyasını asla sürüm kontrolüne dahil etmeyin -
Mümkün olduğunda parolalar yerine erişim belirteçleri kullanın
-
Özellikle paylaşılan hesaplar için kimlik bilgilerini düzenli olarak döndürün
Docker Hub oran sınırlamaları
Docker Hub, belirli bir zaman penceresinde kaç görüntü çekebileceğinizi sınırlar.
Anonim kullanıcılar (oturum yok) altı saatte IP adresi başına 100 çekim alır. Kimliği doğrulanmış ücretsiz kullanıcılar altı saatte 200 çekim alır. Ücretli planlar katmana bağlı olarak daha yüksek sınırlar veya sınırsız çekim sağlar.
Bu sınırlar, CI/CD hatlarını çalıştırırken, geliştirme sırasında sık görüntü çekerken veya birden çok kullanıcının aynı IP’yi paylaştığı ortak altyapıda çalışırken önemlidir. Sınıra ulaştığınızda, pencere sıfırlanana kadar çekimleriniz başarısız olur.
Mevcut oran sınırı durumunuzu kontrol edebilirsiniz:
TOKEN=$(curl "<https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull>" | jq -r .token)
curl --head -H "Authorization: Bearer $TOKEN" <https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest>

Oran sınırınızı artırmanın bazı yolları (çoğu geliştirici için sorun olmayacaktır):
- Çekimlerinizi kimlik doğrulayın: Oturum açarak, ücretsiz hesapla bile daha yüksek sınırlara erişin
- Kayıt defteri aynaları kullanın: Görüntüleri yerelde saklayan bir çekme önbelleği kurun
- Özel kayıt defterlerine geçin: Docker Hub sınırlarından tamamen kaçınmak için kendi kayıt defterinizi barındırın
- Görüntüleri yerelde önbelleğe alın: Bir kez çekin, tekrar tekrar kullanın; sürekli çekmekten kaçının
En kolay çözüm sadece oturum açmaktır. Bu bile oran sınırınızı ikiye katlar.
Gelişmiş Görüntü Çekme Seçenekleri
Bu gelişmiş seçenekler, özellikle üretim ortamlarında ihtiyacınız olan hassasiyet ve kontrolü sağlar.
Özet ile görüntü çekme
Özetler, görüntünün içerik özeti temelinde değişmez tanımlayıcılardır.
Etiketler değişebilir. Biri aynı etiketle yeni bir görüntü gönderir ve bir anda python:3.14.2-bookworm dünkü içerikten farklı bir şeye işaret eder. Özetler değişemez — bunlar görüntü manifestinin SHA256 özetleridir. Aynı özet her zaman tam olarak aynı görüntü anlamına gelir.
Özet ile şöyle çekin:
docker pull python@sha256:6d58c1a9444bc2664f0fa20c43a592fcdb2698eb9a9c32257516538a2746c19a

docker pull --platform linux/amd64 python:3.14.2-bookworm
Bu en çok CI/CD ve üretimde önemlidir. Belirli bir görüntüye karşı test edersiniz, tam olarak o görüntüyü dağıtırsınız. Sürpriz yok, ortamlar arasında sapma yok. Dağıtımınız belirli bir sürüme bağlıysa etiketi değil, özeti kullanın.
Çoklu mimari görüntü çekimleri
Çoklu mimari görüntüler, farklı CPU mimarileri için sürümleri tek bir görüntü referansında paketler.
python:3.14.2-bookworm çektiğinizde, Docker sisteminiz için doğru sürümü otomatik olarak seçer — x86 makineler için amd64, Apple Silicon veya ARM sunucular için arm64. Kayıt defteri, sizin bir şey yapmanıza gerek kalmadan doğru mimariyi sunar.
Ancak bazen belirli bir mimariye ihtiyacınız olur. --platform bayrağını kullanın:
docker pull --platform linux/amd64 python:3.14.2-bookworm

Bu, Apple Silicon üzerinde geliştirirken üretimde çalışacak amd64 sürümünü test etmeniz gerektiğinde ya da derleme makinenizden farklı bir mimari için görüntü oluştururken kullanışlıdır.
Birden fazla etiketi çekme
--all-tags bayrağı bir deponun tüm etiketlerini çeker:
docker pull --all-tags python
Bu, tüm Python etiketlerini — onlarca sürüm, varyant ve mimariyi — indirir. Sonuçta gigabaytlarca görüntü elde edersiniz.
Gerçekten ihtiyaç duymadıkça bunu kullanmayın. Bant genişliği para tutar, depolama hızla dolar ve muhtemelen yayınlanan her bir Python sürümüne ihtiyacınız yoktur. Bunun yerine gerçekten kullandığınız belirli etiketleri çekin.
Bir çekimi iptal etme
Devam eden bir çekimi iptal etmek için Ctrl+C veya CMD+C tuşlarına basın.
Docker, yeni katmanları indirmeyi durdurur ancak tamamladığı katmanları saklar. Aynı görüntüyü bir sonraki çekişinizde, baştan başlamak yerine kaldığı yerden devam eder.
Bu, yanlış görüntüyü yanlışlıkla çektiğinizde, yavaş bir bağlantıda bir çekme çok uzun sürdüğünde veya o anda o görüntüye aslında ihtiyacınız olmadığını fark ettiğinizde kullanışlıdır. İptal edin, komutunuzu düzeltin ve zaten yapılan işi boşa harcamadan tekrar çekin.
docker pull ile Performans Hususları
Gerçek dünyadaki ağların bant genişliği sınırları, proxy’ler ve yavaş bağlantılar gibi kısıtları vardır. Bunlar, görüntü çekmelerini olması gerekenden uzun sürebilir; neler yapabileceğinizi göstereyim.
Çekme performansını optimize etme
Docker, varsayılan olarak görüntü katmanlarını eşzamanlı indirir.
Katmanları teker teker çekmek yerine Docker birden çok bağlantı açar ve birkaç katmanı aynı anda indirir. Bu, hızlı bağlantılarda çekimleri hızlandırır; ancak darboğazın bant genişliği olduğu yavaş ağlarda pek fark etmezsiniz.
İki yaygın strateji daha da yardımcı olur:
- Önbelleğe alma, çekilen görüntülerin yerelde saklanmasını sağlar. Bir görüntüyü bir kez çekin, yüzlerce kez kullanın. Docker herhangi bir şey indirmeden önce katmanlara zaten sahip olup olmadığınızı kontrol eder. Görüntü değişmediyse çekme anında tamamlanır.
- Ön yükleme, görüntüleri yoğun olmayan saatlerde veya dağıtım sürecinizin bir parçası olarak çekmek demektir. CI/CD sistemleri, geliştiricilerin her derleme çalıştırışında beklememesi için temel görüntüleri derleme ajanlarında sıklıkla önbelleğe alır. Üretim sunucuları, trafik gelmeden görüntü çekmekten kaçınmak için dağıtım sırasında önbelleklerini ısıtabilir.
Proxy’lerin arkasında görüntü çekme
Kurumsal ağlar güvenlik, izleme ve erişim denetimi için trafiği proxy’ler üzerinden yönlendirir.
Docker’ın görüntü çekebilmesi için bu proxy’leri bilmesi gerekir. Proxy yapılandırması olmadan, Docker kayıt defterlerine doğrudan ulaşmaya çalıştığı için çekmeler bağlantı zaman aşımı veya DNS hatalarıyla başarısız olur.
Proxy’leri iki düzeyde yapılandırırsınız: Docker istemcisi ve Docker daemon’u. İstemci (docker komutunuz) sisteminizin HTTP proxy ayarlarını otomatik olarak kullanır. Daemon’un /etc/docker/daemon.json içinde veya systemd servis dosyaları aracılığıyla açık yapılandırmaya ihtiyacı vardır.
Yaygın Çekme Sorunlarının Giderilmesi
Çekmeler başarısız olduğunda kullanabileceğiniz pratik bir kontrol listesi — çünkü olacaktır ve önce neyi kontrol edeceğinizi bilmeniz gerekir.
Yaygın hatalar ve nasıl teşhis edileceği
Kimlik doğrulama hataları “yetkisiz” veya “erişim reddedildi” hataları olarak görünür.
docker login ile oturum açıp açmadığınızı kontrol edin. Açtıysanız, kimlik bilgileriniz süresi dolmuş veya yanlış olabilir. docker logout ile çıkış yapın, ardından tekrar giriş yapın. Özel kayıt defterleri için, giriş komutunuzda doğru ana makine adını kullandığınızdan emin olun.
Eksik etiketler “manifest unknown” veya “not found” hataları verir.
Etiket mevcut değildir. Yazım hataları yaygın olduğundan etiket adını iki kez kontrol edin. Gerçekte hangi etiketlerin var olduğunu görmek için kayıt defterinin web arayüzünü kontrol edin. Etiketlerin silinebileceğini unutmayın; dün çalışan bir şey bugün çalışmayabilir.
Ağ zaman aşımı Docker kayıt defterine ulaşamadığında olur.
Önce internet bağlantınızı kontrol edin. Ardından kayıt defterine doğrudan ulaşabildiğinizi doğrulayın — ping registry-1.docker.io veya curl -I <https://registry-1.docker.io> çalıştırın. Bir proxy’nin arkasındaysanız Docker’ın bundan haberdar olduğundan emin olun. Kayıt defteri özelse, güvenlik duvarı kurallarını ve VPN bağlantılarını kontrol edin.
İzin sorunları, kimliği doğrulanmış olsanız bile “denied” hataları olarak görünür.
Oturum açmışsınızdır, ancak hesabınızın bu belirli depodan çekme izni yoktur. Erişim almak için depo sahibiyle veya kayıt defteri yöneticinizle iletişime geçin. Docker Hub için bu genellikle görüntünün özel olduğu ve erişim listesinde olmadığınız anlamına gelir.
DNS ve ağ çözümleme sorunları
DNS hataları, Docker’ın kayıt defteri sunucusunu bulmasını engeller.
“no such host” veya “temporary failure in name resolution” gibi hatalar görürsünüz. Gerçekte olan, Docker’ın kayıt defteri ana makine adını bir IP adresine çevirememesi ve bu nedenle bağlantı kuramamasıdır.
Çözmek için, nslookup registry-1.docker.io veya dig registry-1.docker.io ile DNS çözümlemesini kontrol edin. Bu komutlar başarısız olursa DNS sunucunuz ulaşılamıyor veya yanlış yapılandırılmıştır. Geçici olarak 8.8.8.8 gibi genel bir DNS sunucusuna geçmeyi deneyin.
Kurumsal ağlarda DNS sunucusu yalnızca dahili ana bilgisayar adlarını çözebilir. Özel kayıt defterinizin ana makine adının DNS sunucusunda olduğundan emin olun veya DNS düzeltilene kadar geçici çözüm olarak /etc/hosts dosyasına ekleyin.
Yönetilen ve Yerel İş Akışlarında docker pull
Şimdi eğlenceli kısma — docker pull komutunun, işinizde karşılaşmanız muhtemel senaryolarda nasıl çalıştığına geçelim.
Kubernetes’te görüntü çekmeleri
Kubernetes, pod’ları dağıttığınızda görüntüleri otomatik olarak çeker.
Pod tanımınızda bir kapsayıcıyı bir görüntü referansı ile tanımlarsınız ve Kubernetes sizin için çekmeyi halleder. Her düğümdeki kubelet görüntünün yerelde olup olmadığını kontrol eder. Değilse, kapsayıcıyı başlatmadan önce kayıt defterinden çeker.
Çekme ilkeleri Kubernetes’in görüntüleri ne zaman çekeceğini kontrol eder:
-
Always: Görüntü yerelde olsa bile her seferinde çek -
IfNotPresent: Görüntü düğümde yoksa çek (etiketli görüntüler için varsayılan) -
Never: Asla çekme, görüntü yerelde yoksa başarısız ol
Pod tanımınızda imagePullPolicy ile ilkeleri ayarlayın. Geliştirmede güncellemeleri almak için :latest etiketleri için Always kullanın. Üretimde gereksiz çekimleri önlemek için belirli etiketler için IfNotPresent kullanın.
imagePullSecrets Kubernetes’e özel kayıt defterlerine erişim sağlar. Kayıt defteri kimlik bilgilerinizle bir giz oluşturabilir ve ardından pod tanımınızda buna referans verebilirsiniz. Bunu yapmadan Kubernetes yalnızca genel görüntüleri çekebilir.
Docker Compose ve yerel geliştirme
Compose, çok hizmetli uygulamaları başlattığınızda çekmeleri otomatikleştirir.
docker compose up çalıştırın; Compose her hizmetin görüntüsünü kontrol eder. Bir görüntü eksikse, kapsayıcıları başlatmadan önce çeker. Her hizmet için ayrı ayrı docker pull çalıştırmanıza gerek yoktur; Compose sizin için halleder.
Bu, geliştirme için harika çalışır. Hizmetlerinizi docker-compose.yml içinde tanımlayabilir, tek bir komut çalıştırabilir ve Compose ihtiyacınız olan her şeyi çeker. İlk up indirmeler nedeniyle daha uzun sürer, ancak görüntüler değişmediyse sonraki çalıştırmalar anlıktır.
docker compose ve docker compose pull
Bunlar farklı şeyler yapan iki komuttur.
docker compose up hizmetlerinizi başlatır. Eksik görüntüleri otomatik olarak çeker, ancak yalnızca yerelde yoklarsa. Makinenizde zaten python:3.14.2-bookworm varsa, Compose güncellemeleri kontrol etmeden onu kullanır.
docker compose pull ise yerelde olsalar da olmasalar da compose dosyanızda tanımlı tüm görüntüleri açıkça çeker. Bu, güncellemeler için kayıt defterlerini kontrol eder ve mevcutsa daha yeni sürümleri indirir.
docker compose pull’a ne zaman ihtiyaç duyarsınız:
-
:latestetiketlerini kullanıyorsunuz ve en yeni sürümü istiyorsunuz. Güncellemeleri almak için öncedocker compose pullçalıştırın, ardından taze görüntülerle başlatmak içindocker compose up. -
Hata ayıklıyorsunuz ve yerel görüntünüzün eski veya bozuk olmasından şüpheleniyorsunuz.
docker compose pullile taze kopyalar çekin, ardından yeniden başlatın. -
Hizmetleri gerçekten başlatmadan önce görüntüleri önceden yüklemek istiyorsunuz. Dağıtım sırasında
docker compose pullçalıştırın; böylecedocker compose upindirmeleri beklemeden anında çalışır.
Temel fark şudur: up yalnızca eksik olanı çeker, pull ise sahip olduklarınıza bakmaksızın her şeyi günceller.
Sonuç
docker pull komutu basit görünür, ancak yüzeyin altında çok şey olur ve ayarlayabileceğiniz çok şey vardır. İşte hatırlanması gereken bazı en iyi uygulamalar.
:latest yerine açık etiketler veya özetler kullanın. Oran sınırlamalarından kaçınmak için çekimlerinizi kimlik doğrulayın. Özellikle sürekli çekim yaptığınız CI/CD hatlarında, görüntü çekerken bant genişliği ve depolamanın farkında olun.
Görüntü çekmelerini güvenlik hattınızın bir parçası olarak ele alın. Güvenilmeyen kaynaklar veya bilinen güvenlik açıkları olan eski görüntüler kullanıyorsanız her çekme potansiyel bir saldırı vektörüdür. Kaynakları doğrulayın, sorunlar için tarayın ve temel görüntüleri güncel tutun.
Docker kayıt defterleri ve araçları düzenli olarak değişir. İş akışınızı bozan sürprizlerden kaçınmak için kayıt defteri sağlayıcınızın güncellemelerini takip edin.
Docker ve konteynerleştirme becerilerinizi profesyonel seviyeye taşımaya hazır olduğunuzda, Intermediate Docker kursumuza göz atın ya da tam Docker ve Kubernetes ile Konteynerleştirme ve Sanallaştırma eğitim yolunu tercih edin.
docker pull SSS
docker pull ne yapar?
docker pull Docker Hub gibi kayıt defterlerinden konteyner görüntülerini yerel makinenize indirir. Halihazırda sahip olmadığınız görüntü katmanlarını getirir ve yerelde saklar; böylece o görüntüden konteyner çalıştırabilirsiniz. Önce görüntüleri çekmeden, sisteminizde zaten yoklarsa konteynerleri başlatamazsınız.
Docker Hub oran sınırlamalarından nasıl kaçınırım?
docker login ile oturum açın; oran sınırınızı altı saat içinde 100’den 200 çekime çıkarır. Sınırlara sık takılan ekipler için, özel bir kayıt defteri kullanın veya yerel olarak görüntüleri saklayan bir çekme önbelleği kurun. En kolay çözüm kimlik doğrulamadır — ücretsiz bir Docker Hub hesabı bile büyük fark yaratır.
docker pull ile docker image pull arasındaki fark nedir?
Bunlar işlevsel olarak özdeş komutlardır ve tam olarak aynı şeyi yaparlar. Docker, ilgili komutları bir araya toplamak için bir CLI yeniden düzenlemesi kapsamında docker image pull komutunu tanıttı. Hangisini isterseniz kullanın — docker pull daha kısa ve daha yaygın, docker image pull ise betiklerde daha açıklayıcıdır.
Üretimde görüntü etiketlerini mi yoksa özetlerini mi kullanmalıyım?
Üretimde değişmezlik garantisi için özetleri kullanın. python:3.14.2-bookworm gibi etiketler, biri aynı etiketle yeni bir görüntü gönderirse değişebilir; ancak özetler asla değişmeyen SHA256 karmalarıdır. Her seferinde tam olarak aynı görüntüyü almak için docker pull python@sha256:abc123… ile özete göre çekin.
Neden docker pull "manifest unknown" hatalarıyla başarısız oluyor?
Çekmeye çalıştığınız etiket kayıt defterinde mevcut değildir. Yazım hatalarına karşı etiket adını iki kez kontrol edin ve kaydın web arayüzünden etiketin gerçekten var olup olmadığını doğrulayın. Etiketler silinebilir; bu yüzden daha önce çalışan bir şey artık mevcut olmayabilir.

