📝 Giriş
Kurumsal ortamlarda Docker container’larının yeniden başlatma sonrası otomatik olarak çalışmaması sık karşılaşılan bir problemdir. Bu senaryoda bir sistem yöneticisinin, sunucu yeniden başlatıldığında container’ların çalışmadığını fark etmesiyle başlayan gerçek bir sorun çözüm süreci ele alınmaktadır.
🔍 Sorunun Belirtileri
– `docker ps` çıktısı boş geliyor
– `docker container ls -a` komutunda container’lar görünse bile *exited* durumda
– Hizmetlere dışarıdan erişilemiyor
– Log dosyalarında herhangi bir otomatik başlatma kaydı yok
🧪 Teşhis Adımları
1. `docker inspect <container_id>` ile container detayları incelendi
2. `RestartPolicy` değerinin `no` olduğu görüldü
3. `journalctl -u docker` ile docker servisi yeniden başlatıldığında hatasız çalıştığı teyit edildi
4. Bazı container’larda `–restart unless-stopped` parametresinin kullanılmadığı anlaşıldı
🛠️ Çözüm
Container’ları yeniden oluştururken uygun restart policy tanımlandı:
docker run -d –name webapp –restart unless-stopped nginx
– `–restart unless-stopped`: Container sistem yeniden başlatıldığında otomatik olarak başlar.
– Alternatif: `–restart always` (manuel durdurulsa bile yeniden başlatılır)
📋 Ek Kontroller
– Docker servisi enable edilmemiş olabilir:
`sudo systemctl enable docker`
– Sistem clock hataları varsa, `ntp` veya `systemd-timesyncd` servisleri kontrol edilmelidir
– Sistem shutdown sırasında volume detach problemleri varsa loglar detaylı incelenmelidir
🎯 Sonuç
Docker container’larının boot sonrası çalışmaması çoğunlukla restart policy eksikliğinden kaynaklanır. Kritik servislerin bulunduğu ortamlarda her container mutlaka uygun bir `–restart` parametresiyle yapılandırılmalıdır. Ayrıca docker servisi sistem açılışında çalışacak şekilde ayarlanmalıdır.

