İçeriğe geç

Docker “network not found” Hatası Nasıl Giderilir?

Kategori: Uncategorized

Docker Nedir ve Neden Tercih Edilir?

Docker, uygulamaları tüm bağımlılıklarıyla birlikte izole bir ortamda çalıştıran konteyner tabanlı bir sanallaştırma teknolojisidir. Geleneksel sanallaştırma çözümlerine kıyasla daha hafif, hızlı ve esnek bir yapıya sahiptir. Docker’ın öne çıkan avantajları şunlardır:

– Geliştirme ortamında oluşturulan bir container, üretim ortamına sorunsuz şekilde aktarılabilir.
– Tek bir fiziksel sunucu üzerinde, birbirinden bağımsız birçok uygulama izole biçimde çalıştırılabilir.
– Docker imajları kullanılarak uygulama ortamları saniyeler içinde oluşturulabilir.
– Ortamlar versiyonlanabilir ve ihtiyaç halinde önceki sürümlere döndürülebilir.
– Docker Hub üzerinden binlerce hazır imaj kolaylıkla erişilebilir durumdadır.

Docker ve Docker Compose Kurulumu

Docker Compose, çoklu container yapılandırmalarını tek bir YAML dosyası ile tanımlayıp birlikte çalıştırmanıza imkân tanır. Kurulumu oldukça pratiktir ve sisteminizde Docker’ın kurulu olması yeterlidir. Ubuntu 18 gibi yaygın kullanılan Linux dağıtımları üzerinde Compose kurulumu sorunsuz bir şekilde gerçekleştirilebilir. Ayrıntılı bilgiye Dockerkurulum kılavuzundan ulaşabilir ya da aşağıda özetlenen terminal komutları ile temel kurulumu yapabilirsiniz. Böylece Compose yapılandırmasına geçmeden önce sisteminiz hazır hâle gelir.

Docker Kurulumu

Ubuntu örneğiyle:

sudo apt update
apt install docker.io
sudo systemctl enable --now docker

Docker Compose Kurulumu

sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

❌ “network not found” Hatası Çözümü

Bu hata genellikle docker-compose.yml dosyasında tanımlı olan bir ağın sistemde mevcut olmamasından kaynaklanır. Eğer yapılandırma dosyasında harici (external) bir ağ kullanımı belirtilmişse ve bu ağ daha önce oluşturulmamış ya da sistem temizliği sırasında silinmişse, Docker Compose ilgili ağı bulamadığı için başlatma işlemini durdurur. Bu durumda yapılması gereken ilk adım, belirtilen ağın sistemde gerçekten var olup olmadığını kontrol etmektir.

Eğer yoksa, ağı manuel olarak oluşturmak ya da external tanımını kaldırarak Docker’ın ağı otomatik olarak oluşturmasına izin vermek çözüm olacaktır. Hatanın kaynağını doğru analiz etmek ve ağ tanımlarını dikkatle yapılandırmak, benzer problemlerle karşılaşma riskini azaltacaktır.

ERROR: Network my_custom_network declared as external, but could not be found.

Ağı Manuel Oluşturun; Eğer ağ sistemde yoksa, aşağıdaki komutla oluşturabilirsiniz:

docker network create my_custom_network

Compose Dosyasını Düzenleyin; Ağ harici olmak zorunda değilse external: true satırını kaldırın:

networks:
my_custom_network:
driver: bridge

Mevcut Ağları Listeleyin; Kontrol etmek için:

docker network ls

Sistem Temizliği Sonrası Ağları Yeniden Oluşturun

docker system prune veya docker network prune gibi komutlar ağı silmiş olabilir. Bu durumda elle yeniden oluşturmanız gerekir.

Docker ağlarıyla ilgili daha fazla bilgi edinmek için docker network inspect <ağ_ismi> komutunu kullanarak ilgili ağın yapılandırma detaylarını ve bağlı konteynerleri görüntüleyebilirsiniz. Geliştirme ve üretim ortamlarını birbirinden ayırmak için docker-compose.override.yml gibi farklı yapılandırma dosyaları kullanmak, yapıların esnekliğini artırır ve ortamlar arası geçişi kolaylaştırır.

Ayrıca, Docker Compose dosyalarınızı Git gibi bir versiyon kontrol sistemiyle takip etmek, yapılandırma değişikliklerini geriye dönük izlemek ve ekip içi işbirliğini kolaylaştırmak açısından büyük avantaj sağlar. Eğer tek bir sunucuda birden fazla Compose projesi çalıştırıyorsanız, her proje için benzersiz ağ adları tanımlamanız, olası çakışmaları önleyerek sistemin daha istikrarlı çalışmasını sağlar.

Sık Sorulan Sorular (SSS)

Docker ağı sistemden neden silinir?
Docker ağı çeşitli nedenlerle sistemden silinebilir. En yaygın senaryo, docker system prune veya docker network prune gibi temizlik işlemleri sırasında kullanılmayan ağların otomatik olarak kaldırılmasıdır. Ayrıca ağ, kullanıcı tarafından manuel olarak da silinmiş olabilir. Harici ağlar bu işlemlerden etkilenebileceği için dikkatli olunmalıdır.

Tanımlı bir ağı manuel olarak nasıl oluşturabilirim?
Eğer docker-compose.yml dosyanızda belirtilen bir ağ sistemde mevcut değilse, ağı şu komutla manuel olarak oluşturabilirsiniz:

docker network create my_custom_network

Burada my_custom_network yerine Compose dosyanızda tanımlı olan ağ ismini yazmalısınız. Bu komut, Docker’a o isimde bir köprü ağı (bridge network) oluşturmasını söyler.

Docker Compose özel bir ağ olmadan da çalışır mı?
Evet, Docker Compose dosyanızda özel bir ağ tanımı yapılmadıysa, Docker varsayılan bridge ağı üzerinden servisleri çalıştırır. Bu durumda manuel ağ oluşturmanıza gerek kalmaz. Ancak özel bir yapı veya proje bazlı izolasyon gerekiyorsa, özel ağ tanımlamak ve bu ağı dikkatli yönetmek önemlidir.

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir