Ubuntu sunucularında Docker container'larını etkili bir şekilde yönetmek, özellikle ağ yapılandırması açısından kritik öneme sahiptir.
Ubuntu sunucularında Docker container’larını etkili bir şekilde yönetmek, özellikle ağ yapılandırması açısından kritik öneme sahiptir. Docker network, container’lar arası iletişim, dış dünya ile bağlantı ve ölçeklenebilirlik sağlamak için temel bir bileşendir. Bu makalede, Ubuntu ortamında Docker network’ü kurma, yapılandırma ve yönetme süreçlerini adım adım ele alacağız. Kurumsal ortamlarda güvenilirlik ve performans odaklı yaklaşımlarla, pratik örnekler üzerinden rehberlik sunacağız. Bu bilgiler, sistem yöneticilerinin Docker tabanlı uygulamalarını sorunsuz bir şekilde devreye almasına yardımcı olacaktır.
Docker, varsayılan olarak bridge network ile çalışır; bu, container’ların izole bir ağda birbirleriyle iletişim kurmasını sağlar. Ubuntu sunucularda bu network tipi, geliştirme ve test ortamları için idealdir. Bridge network, Docker daemon tarafından otomatik oluşturulur ve container’lara 172.17.0.0/16 IP aralığından adres atar. Kurumsal uygulamalarda, birden fazla container’ın veritabanı sunucusu gibi servislerle güvenli iletişim kurması için özelleştirilmiş bridge network’ler oluşturulmalıdır.
Host network, container’ı sunucunun ana ağ arayüzüne doğrudan bağlar; bu sayede container, sunucunun IP adresini paylaşır ve NAT katmanını atlar. Yüksek performans gerektiren senaryolarda, örneğin ağ gecikmesini minimize etmek istediğinizde tercih edilir. Overlay network ise swarm modunda birden fazla Ubuntu sunucusu arasında container’lar arası iletişimi sağlar; VXLAN protokolü kullanarak şifreli tüneller oluşturur. Bu, mikro servis mimarilerinde ölçeklenebilirlik için vazgeçilmezdir. Her network tipini ihtiyaca göre seçmek, kaynak kullanımını optimize eder ve güvenlik risklerini azaltır.
Ubuntu 20.04 veya 22.04 gibi LTS sürümlerinde Docker’ı kurmak için öncelikle depo güncellemelerini yapın: sudo apt update && sudo apt install docker.io docker-compose. Docker servisini etkinleştirin: sudo systemctl enable --now docker. Varsayılan bridge network zaten hazırdır; test etmek için docker network ls komutunu çalıştırın. Özel bir bridge network oluşturmak için docker network create -d bridge mynetwork kullanın. Bu network’e container ekleyin: docker run -d --network mynetwork --name webapp nginx.
docker network inspect mynetwork ile IP atamalarını ve gateway bilgilerini görüntüleyin.docker run -it --network mynetwork busybox ping webapp ile erişimi doğrulayın.docker run -d --network mynetwork -p 8080:80 myapp ile dış erişim sağlayın.Overlay network için swarm başlatın: docker swarm init. Ardından docker network create -d overlay --attachable prod-overlay ile oluşturun. Bu yapı, çoklu sunuculu kurulumlarda trafik izolasyonu sağlar. Ubuntu’nun iptables kurallarını Docker ile uyumlu hale getirmek için UFW kullanıyorsanız, sudo ufw docker enable komutunu unutmayın.
Docker network’lerde özel DNS ayarlamak için docker network create --opt com.docker.network.bridge.name=br-mynet -d bridge --subnet=192.168.10.0/24 --ip-range=192.168.10.128/25 --gateway=192.168.10.1 mynet gibi parametreler kullanın. DNS resolver ekleyin: --dns=8.8.8.8. Bu, container’ların isim çözümlemesini hızlandırır ve kurumsal DNS sunucularıyla entegrasyonu sağlar. Örnekte, subnet ile IP havuzunu sınırlayarak çakışmaları önlersiniz. Uygulamalarda sabit IP atamak için docker run --network mynet --ip=192.168.10.130 mycontainer uygularsınız; bu, load balancer konfigürasyonlarında tutarlılık sağlar.
Network güvenliğini artırmak için user-defined bridge’ler kullanın ve varsayılanı devre dışı bırakın: /etc/docker/daemon.json dosyasına {"bridge": "none"} ekleyin, ardından daemon’ı yeniden başlatın. Macvlan network ile container’lara fiziksel ağ IP’si atayın: docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 macnet. Bu, VM benzeri izolasyon sunar. Firewall kuralları için iptables -A DOCKER -i br-mynet -j ACCEPT gibi komutlarla trafiği filtreleyin. Loglama için docker logs ve tcpdump araçlarını entegre edin.
IP çakışması durumunda docker network prune ile kullanılmayan network’leri temizleyin. Port binding hatalarında netstat -tuln | grep 8080 ile çakışmaları kontrol edin. Swarm overlay sorunlarında docker swarm leave --force ile resetleyin. Ubuntu’nun AppArmor profili Docker’ı kısıtlıyorsa sudo aa-complain /usr/bin/docker uygulayın. Performans için MTU’yu ayarlayın: docker network create --opt com.docker.network.driver.mtu=1450 mynet. Bu adımlar, üretim ortamlarında kesintisiz operasyon sağlar.
Ubuntu sunucularda Docker network’ü etkin yönetmek, uygulamalarınızın ölçeklenebilir ve güvenli olmasını sağlar. Yukarıdaki adımları uygulayarak, bridge’den overlay’e geçiş yapabilir, izolasyon ve performans dengesini kurabilirsiniz. Düzenli denetimler ve güncellemelerle sisteminizi optimize edin; bu, kurumsal standartlara uyum için temel bir yaklaşımdır.