Docker Networking

Container networking, bridge, host ve overlay networks

Network Türleri

DriverAçıklamaKullanım
bridgeVarsayılan, izole networkTek host, container arası
hostHost network'ü paylaşırPerformans kritik
noneNetwork yokTam izolasyon
overlayMulti-host networkDocker Swarm
macvlanFiziksel MAC adresiLegacy uygulamalar

Network Yönetimi

# Network listele
docker network ls

# Network oluştur
docker network create mynetwork

# Özel subnet ile
docker network create \
  --driver bridge \
  --subnet 172.20.0.0/16 \
  --gateway 172.20.0.1 \
  mynetwork

# Network detayları
docker network inspect mynetwork

# Network sil
docker network rm mynetwork

# Kullanılmayanları temizle
docker network prune

Container'ı Network'e Bağlama

# Oluştururken
docker run -d --network mynetwork --name app1 nginx

# Sonradan bağlama
docker network connect mynetwork app2

# Bağlantıyı kes
docker network disconnect mynetwork app2

Container İletişimi

# Aynı network'teki container'lar isimle haberleşir
docker network create mynet
docker run -d --network mynet --name db mysql
docker run -d --network mynet --name app myapp

# app içinden db'ye bağlanma
mysql -h db -u root -p

Compose'da Networking

version: '3.8'

services:
  frontend:
    image: nginx
    networks:
      - frontend_net
      - backend_net

  api:
    image: myapi
    networks:
      - backend_net

  db:
    image: postgres
    networks:
      - backend_net

networks:
  frontend_net:
  backend_net:
    internal: true  # Dış erişim yok

DNS ve Alias

docker run -d \
  --network mynet \
  --network-alias db \
  --network-alias database \
  mysql