Docker Networking & Volumes: Kurulum ve İlk Adımlar

24 October 2025
Özet: Bu rehberde Docker konteynerlerinin network ve volume yapılandırmaları detaylı biçimde ele alınır. bridge, host, overlay gibi ağ modları; named volume ve bind mount gibi veri yönetimi yöntemleri örneklerle açıklanır. Gerçek dünya senaryosu, performans kıyasları ve yedekleme yöntemleriyle k

Docker Networking & Volumes: Kurulum ve İlk Adımlar

Giriş

Docker, konteynerler sayesinde uygulama bileşenlerini izole çalıştırmayı sağlar. Ancak ağ (network) ve veri (volume) yapılandırmaları doğru yapılmazsa konteynerler arasında iletişim kurmak veya veriyi kalıcı hale getirmek mümkün olmayabilir.

Bu makalede şunları öğreneceksiniz:

  • Docker ağ türleri (bridge, host, overlay)
  • Konteynerler arası iletişim kurma
  • Kalıcı veri saklama yöntemleri
  • bind mount ve named volume farkları
  • docker-compose ile otomasyon
  • Volume yedekleme ve geri yükleme işlemleri

Bu rehberin sonunda, hem tek host hem de çoklu node ortamlarında sağlam ağ ve veri yapılandırmaları yapabilecek düzeye geleceksiniz.


Önkoşullar

  • Linux/macOS (veya Windows Docker Desktop) ortamı
  • Docker Engine v24+
  • Terminal bilgisi
  • İnternet erişimi

Not: Komutlar sudo yetkisine sahip ancak root olmayan kullanıcı üzerinden çalıştırılmalıdır.


Adım 1 — Docker Ağ Türleri

Docker ağları, konteynerlerin hem birbirleriyle hem de dış dünya ile iletişim kurmasını sağlar.

Listeleme:

docker network ls

Örnek çıktı:

NETWORK ID     NAME      DRIVER    SCOPE
b1292dd03ea9   bridge    bridge    local

🔹 bridge (Varsayılan)

Docker, varsayılan olarak bridge ağını kullanır. Her yeni konteyner bu ağa bağlanır.

docker run -dit --name web1 nginx
docker exec -it web1 ip a

Özel Bridge Ağı

docker network create --driver bridge my_bridge
docker run -dit --name nginx1 --network my_bridge nginx
docker run -dit --name nginx2 --network my_bridge alpine sh
docker exec -it nginx2 ping nginx1

Konteynerler isimleriyle haberleşebilir.


🔸 host Ağı

Bu modda konteyner, host’un ağ arabirimini doğrudan kullanır.

docker run --rm -d --network host nginx

Port yönlendirmesi gerekmez. Güvenlik açısından dikkatli olunmalıdır.


🔸 overlay Ağı

Birden fazla Docker host arasında ağ oluşturur. Swarm mod gerektirir.

docker swarm init
docker network create -d overlay --attachable app_overlay

Overlay ağlar VXLAN tünelleme ile çalışır.


Diğerleri: macvlan ve none

  • macvlan: Gerçek IP ve MAC adresi atamak için kullanılır.
  • none: Tam izole mod (ağsız).

Adım 2 — Trafik İzleme (tcpdump)

sudo apt install tcpdump -y
sudo tcpdump -i docker0

Konteynerler arası ping trafiği izlendiğinde, ICMP paketleri docker0 köprüsü üzerinden geçer.


Adım 3 — Ağ Yapısı

[ Container1 ]---vethX  docker0  host  Internet
[ Container2 ]---vethY /

Her konteyner veth çiftiyle köprüye bağlanır.


Adım 4 — Docker Volumes

Konteynerler silindiğinde veriler kaybolur. Kalıcı veri için volume yapısı kullanılır.

🟦 Named Volumes

docker volume create app_data
docker run -d -v app_data:/usr/share/nginx/html nginx
docker volume inspect app_data

🟧 Bind Mounts

mkdir -p ~/data
echo "Merhaba Docker" > ~/data/index.html

docker run -d   -v ~/data:/usr/share/nginx/html   -p 8080:80 nginx

Adım 5 — Bind vs Named Volume

Özellik Named Volume Bind Mount
Performans Optimize Donanıma bağlı
Güvenlik Daha güvenli Root erişimi gerekebilir
Yedekleme Kolay Karmaşık
Esneklik Düşük Yüksek
Taşınabilirlik Yüksek Düşük

Adım 6 — Volume Yedekleme ve Geri Yükleme

Yedekleme

docker run --rm   -v app_data:/volume   -v $(pwd):/backup   busybox tar czf /backup/app_data.tar.gz /volume

Geri Yükleme

docker run --rm   -v app_data:/restore   -v $(pwd):/backup   busybox tar xzf /backup/app_data.tar.gz -C /

Adım 7 — Docker Compose

version: "3.8"

services:
  web:
    image: nginx
    volumes:
      - app_data:/usr/share/nginx/html
    networks:
      - backend

  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - db_data:/var/lib/postgresql/data
    networks:
      - backend

volumes:
  app_data:
  db_data:

networks:
  backend:
docker compose up -d

Adım 8 — Güvenlik ve İzinler

sudo chown -R 1000:1000 ~/data
sudo chmod -R 755 ~/data

SELinux aktifse :Z etiketi gerekebilir:

-v /host/path:/container/path:Z

Sonuç

Bu rehberde:

  • Docker ağ türlerini öğrendiniz
  • Volume yapılarını incelediniz
  • Bind ve Named farkını gördünüz
  • Yedekleme ve Compose yapılandırmasını uyguladınız

Artık Docker projelerinizde kalıcı veri ve ağ yapılandırmasını güvenle yönetebilirsiniz.

Makale Sayfasına Dön