Bu rehber gerçek Ubuntu 24.04.4 LTS üzerinde kurduğumuz n8n + Ollama + Open WebUI yapısının Docker network katmanını ayrı olarak inceliyor. eka-ai user-defined bridge ağı, Docker DNS ile container isimleri, host 127.0.0.1 ile container localhost farkı, n8n → Ollama ve Open WebUI → Ollama gerçek bağlantı testleri ve 11434/3000/5678 localhost port güvenliği adım adım anlatılıyor.
Ubuntu 24.04 Docker Host
├─ n8n ─┐
├─ Open WebUI ├─ eka-ai ─→ ollama:11434
└─ Ollama ─┘
Host → 127.0.0.1:11434
Container → http://ollama:11434Gerçek Ubuntu 24.04 test ortamımızda Ollama, Open WebUI ve n8n ayrı Docker containerları olarak çalışıyor. Servislerin birbirine doğrudan container adıyla erişebilmesi için eka-ai adında user-defined bridge network kullandık.
Bu yapı public port açmadan servisler arası iletişim sağlar. n8n ve Open WebUI Ollama'ya http://ollama:11434 üzerinden ulaşırken, host üzerindeki test komutları http://127.0.0.1:11434 adresini kullanır.
n8n → eka-ai → ollama:11434
Open WebUI → eka-ai → ollama:11434
Host → 127.0.0.1:11434Docker'ın user-defined bridge networkleri aynı ağa bağlı containerlar arasında isim tabanlı iletişim ve daha iyi izolasyon sağlar. AI servislerini tek bir proje ağı altında toplamak bu nedenle varsayılan bridge'e göre daha düzenli bir mimaridir.
eka-ai ağı yoksa docker network create ile oluşturabilirsiniz. Aynı isim zaten varsa Docker hata verir; mevcut ağı docker network inspect ile doğrulamak yeterlidir.
docker network create eka-aidocker network lsAğın var olması tek başına yeterli değildir; iletişim kuracak containerların gerçekten aynı networke bağlı olması gerekir. docker network inspect çıktısı bağlı containerları ve Docker tarafından atanmış IP'leri gösterir.
Container IP'leri değişebileceği için uygulama ayarlarında sabit 172.x.x.x adresleri kullanmak yerine container adı üzerinden Docker DNS kullanın.
docker network inspect eka-aidocker inspect ollama --format '{{json .NetworkSettings.Networks}}'
docker inspect n8n --format '{{json .NetworkSettings.Networks}}'
docker inspect open-webui --format '{{json .NetworkSettings.Networks}}'n8n containerının içinden http://localhost:11434 çağrısı yaparsanız localhost n8n containerının kendisini ifade eder; Ollama containerını değil. Bu nedenle aynı Docker host üzerinde olsalar bile ayrı container servisleri localhost ile birbirini bulamaz.
Aynı user-defined networkte Docker'ın gömülü DNS servisi container isimlerini çözer. Ollama containerının adı ollama ise n8n ve Open WebUI tarafında doğru adres http://ollama:11434 olur.
Hatalı: http://localhost:11434Doğru: http://ollama:11434Aynı Ollama servisine erişen istemcinin nerede çalıştığı adresi belirler. SSH terminalinde veya host Nginx katmanında localhost/127.0.0.1 hostun kendisini ifade eder. Docker containerında ise localhost containerın kendi network namespace'idir.
Gerçek kurulumumuzda host Ollama testi 127.0.0.1:11434 ile, n8n ve Open WebUI entegrasyonları ise ollama:11434 ile çalıştı.
curl -sS http://127.0.0.1:11434/api/tagsdocker exec n8n node -e "fetch('http://ollama:11434/api/tags').then(r=>r.text()).then(console.log)"n8n ile AI Agent node'larını kurmadan önce network katmanını doğrudan container içinden test etmek hata ayıklamayı kolaylaştırır. Gerçek testte n8n containerı http://ollama:11434/api/tags endpointine HTTP 200 ile erişti ve qwen3:4b modelini gördü.
Ardından yine n8n containerından gerçek /api/chat isteği gönderildi ve N8N-OLLAMA-BAGLANTISI-BASARILI yanıtı alındı. Böylece sonraki credential veya node problemlerinin Docker network kaynaklı olmadığını kanıtladık.
docker exec n8n node -e "fetch('http://ollama:11434/api/tags').then(r=>r.json()).then(j=>console.log(JSON.stringify(j)))"docker exec n8n node -e "fetch('http://ollama:11434/api/chat',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({model:'qwen3:4b',messages:[{role:'user',content:'Sadece N8N-OLLAMA-BAGLANTISI-BASARILI yaz.'}],stream:false})}).then(r=>r.json()).then(j=>console.log(j.message.content))"Open WebUI da Ollama'dan ayrı container olarak çalıştığı için host localhost adresi yerine Docker network adı kullanır. Gerçek kurulumda OLLAMA_BASE_URL=http://ollama:11434 olarak tanımlandı.
Bu sayede Open WebUI qwen3:4b modelini listelerken Ollama'nın 11434 host portunu public internete açmamıza gerek kalmadı.
OLLAMA_BASE_URL=http://ollama:11434docker network connect eka-ai open-webui
docker network connect eka-ai ollamaUser-defined Docker ağı servisler arası private iletişim sağlarken host port yayınlama politikasını ayrıca kontrol etmek gerekir. Biz Ollama 11434, Open WebUI 3000 ve n8n 5678 portlarını yalnız 127.0.0.1 üzerinde bind ettik.
Public kullanıcılar Open WebUI ve n8n'e doğrudan bu portlardan değil Nginx + HTTPS üzerinden erişti. Ollama API ise public olarak yayınlanmadı.
-p 127.0.0.1:11434:11434-p 127.0.0.1:3000:8080-p 127.0.0.1:5678:5678ss -lntp | grep -E ':11434|:3000|:5678'Bir containerı başlatırken --network eka-ai vermeyi unuttuysanız containerı silmek zorunda değilsiniz. Docker user-defined networklere çalışan containerları sonradan bağlamayı destekler.
Bağlantıdan sonra docker network inspect ile üyeliği, container içinden getent hosts ile DNS çözümünü ve HTTP isteğiyle gerçek servis erişimini doğrulayın.
docker network connect eka-ai n8ndocker network connect eka-ai open-webuidocker network inspect eka-aidocker exec n8n getent hosts ollamaÖnce iki containerın aynı user-defined ağa bağlı olduğunu doğrulayın. Ardından Docker DNS ile ollama hostname'inin çözüldüğünü test edin. DNS çalışıyor fakat HTTP başarısızsa hedef servisin container içinde doğru portta dinlediğini ve loglarını kontrol edin.
Hostta 127.0.0.1:11434 çalışırken n8n containerında ollama:11434 çalışmıyorsa problem büyük olasılıkla Docker network üyeliği veya Docker DNS katmanındadır. Her iki test de başarısızsa Ollama containerı veya runtime katmanını inceleyin.
docker network inspect eka-aidocker exec n8n getent hosts ollamadocker exec n8n node -e "fetch('http://ollama:11434/api/tags').then(r=>console.log(r.status)).catch(console.error)"docker logs --tail 100 ollamaDocker network sorunlarında birkaç temel komut yeterlidir: ağı oluşturun veya doğrulayın, containerları bağlayın, üyeliği inspect edin, DNS çözümünü test edin ve son olarak gerçek HTTP isteği gönderin.
Bu komut seti bizim n8n + Ollama + Open WebUI yapımızda kullandığımız network modelini özetler.
docker network create eka-aidocker network connect eka-ai n8n
docker network connect eka-ai open-webui
docker network connect eka-ai ollamadocker network inspect eka-aidocker exec n8n getent hosts ollamadocker exec n8n node -e "fetch('http://ollama:11434/api/tags').then(r=>r.text()).then(console.log)"Container yeniden oluşturulurken --network parametresi unutulursa servis ayağa kalkabilir ancak diğer AI containerlarıyla bağlantı kuramayabilir. Bu nedenle güncelleme sonrası yalnız container status değil Docker network üyeliğini de kontrol edin.
Ayrıca host portlarının yanlışlıkla 0.0.0.0 üzerinde publish edilmediğini ss ve docker ps ile doğrulayın. Private Docker ağı ile localhost-only host binding birlikte kullanıldığında servisler arası iletişim korunurken gereksiz public portlar azaltılır.
docker network inspect eka-aidocker ps --format 'table {{.Names}}\t{{.Ports}}'ss -lntp | grep -E ':11434|:3000|:5678'Containerın kendi network namespace'ini gösterir; başka bir containerı göstermez.
Aynı user-defined networkte container adı ollama ise http://ollama:11434 kullanabilirsiniz.
Bu gerçek kurulumda http://127.0.0.1:11434 kullanıldı.
Aynı ağa bağlı containerlar arasında isim tabanlı iletişim ve proje bazlı izolasyon sağlar.
docker network create eka-ai komutuyla oluşturulur.
Evet. docker network connect eka-ai CONTAINER komutu kullanılabilir.
Genellikle hayır. IP değişebileceği için user-defined networkte container adını kullanmak daha sağlıklıdır.
Custom user-defined networklerde Docker gömülü DNS ile container isimlerini çözebilir.
Önce aynı Docker networkte olduklarını, ardından ollama hostname çözümünü ve HTTP endpoint erişimini kontrol edin.
Gerçek kurulumda OLLAMA_BASE_URL=http://ollama:11434 kullanıldı.
Hayır. Aynı Docker ağındaki containerlar Ollama'ya public port gerektirmeden ulaşabilir.
Host tarafında yalnız 127.0.0.1 üzerinde bind edildi ve public erişim Nginx HTTPS üzerinden verildi.
Ağın driver, subnet, gateway ve bağlı container bilgilerini gösterir.
Network üyeliği, container DNS çözümü, gerçek HTTP bağlantısı ve host port bindlerini tekrar doğrulayın.
n8n, Ollama, Open WebUI ve diğer self-hosted servisleri private Docker network mimarisiyle çalıştırmak için EKA Sunucu Linux VPS paketlerini inceleyebilirsiniz.
Güncellendi: 10.08.2026