شبکهبندی Docker برای برنامههای سازمانی
درک مدلهای شبکه Docker برای برنامههای Containerized در سطح تولیدی ضروری است.
مرور درایور شبکه
| درایور | کاربرد | محدوده |
|---|---|---|
| bridge | کانتینرهای تکهاست | محلی |
| host | برنامههای حیاتی از نظر عملکرد | محلی |
| overlay | Swarm/K8s چند هاست | Swarm/کلاستر |
| macvlan | کانتینرها نیاز به IP واقعی دارند | محلی |
شبکههای Bridge اختصاصی
BASH
docker network create --driver bridge --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 --gateway 172.20.0.1 app-network
docker run -d --network app-network --name web nginx
docker run -d --network app-network --name api myapi
# کانتینرها میتوانند با نام به هم دسترسی داشته باشند
docker exec web curl http://api:8080/healthDocker Compose چند شبکه
YAML
version: '3.8'
services:
nginx:
image: nginx:alpine
networks:
- frontend
ports:
- "443:443"
postgres:
image: postgres:15
networks:
- backend
networks:
frontend:
driver: bridge
backend:
driver: bridge
internal: true # بدون دسترسی خارجیMacvlan برای IP واقعی
BASH
docker network create -d macvlan --subnet=192.168.10.0/24 --gateway=192.168.10.1 --opt parent=eth0 macvlan-net
docker run -d --network macvlan-net --ip 192.168.10.100 postgres:15