Docker kullanırken zaman zaman TLS handshake time out hatası ile karşılaşabilirsiniz. Bu hata, Docker istemcisinin uzak registry ile güvenli bağlantı kurmaya çalışırken zaman aşımına uğramasıyla oluşur. Özellikle yavaş internet bağlantılarında veya registry sunucusunun yoğun olduğu anlarda bu problem sık görülür. Bu makalede, Docker TLS handshake time out hatası çözümü için adım adım yöntemleri anlatacağız.
TLS handshake, istemci ile sunucu arasında güvenli bir bağlantı kurulurken gerçekleşen doğrulama ve şifreleme sürecidir.Eğer bu süreç belirtilen süre içinde tamamlanamazsa, Docker TLS handshake time out hatası ile karşılaşırsınız.
Bu hatanın başlıca sebepleri şunlardır:
İnternet bağlantısında yavaşlık veya kesinti
Docker registry sunucusunun yoğun olması
IPv6 kaynaklı bağlantı problemleri
Docker daemon yapılandırmasında eksik veya hatalı ayarlar
Bu hatayı çözmek için Docker daemon yapılandırmasını optimize ederek bağlantıyı hızlandırabilirsiniz. Aşağıdaki adımları izleyin:
Öncelikle Docker’ın yapılandırma dosyasını açın:
sudo nano /etc/docker/daemon.json
Dosyaya aşağıdaki içeriği ekleyin veya mevcutsa güncelleyin:
{ "ipv6": false, "registry-mirrors": ["https://mirror.gcr.io"] }
Bu ayarlar sayesinde:
IPv6 kapatılır, böylece yavaş IPv6 bağlantılarından kaynaklanan timeout sorunları azalır.
Google Container Registry Mirror kullanılarak çekme (pull) işlemleri hızlanır.
Yapılandırmayı kaydettikten sonra aşağıdaki komutla Docker servisini yeniden başlatın:
sudo systemctl restart docker
Eğer sorun devam ederse farklı bir registry mirror ekleyebilirsiniz.
Sunucunuzun DNS yapılandırmasını kontrol edin ve Google DNS (8.8.8.8) gibi hızlı DNS sunucuları deneyin.
Yoğun trafik saatleri dışında imaj çekmeyi deneyerek bağlantı süresini kısaltabilirsiniz.