Skip to content
An`s Weblog
Go back

Networking Overview

Mục tiêu bài học

1. Thành phần chính trong Docker Networking

Docker networking gồm 3 thành phần cốt lõi:

Thành phầnMô tả
CNM (Container Network Model)Mô hình thiết kế mạng chuẩn của Docker
libnetworkThư viện hiện thực CNM trong thế giới thực
DriversTriển khai các loại mạng khác nhau

2. libnetwork – Bộ máy kết nối mạng

libnetwork là hiện thực của CNM, đảm nhận:

Nó sử dụng các driver để tạo các mô hình mạng cụ thể.

3. Các Docker Network Driver phổ biến

DriverMô tả
bridgeMạng mặc định, dùng để nối các container trên cùng host (Linux-only)
overlayDùng để kết nối container giữa nhiều host – thường dùng với Docker Swarm
macvlanCấp địa chỉ MAC riêng cho container → giống như thiết bị vật lý
noneTắt toàn bộ kết nối mạng của container
plugin bên thứ 3Cài từ Docker Hub để mở rộng chức năng mạng

bridge là mặc định cho container chạy trên 1 máy. overlay = phân tán trên nhiều máy (Docker Swarm). macvlan dùng cho app cần cảm giác “vật lý”.

4. CNM – Container Network Model

CNM định nghĩa 3 khối thành phần cơ bản:

Thành phầnMô tả
SandboxCô lập network stack (interface, port, DNS, route table)
EndpointCổng kết nối giữa sandbox và mạng – giống card mạng
NetworkMạng kết nối các endpoint lại với nhau (giống cầu nối 802.1d)

5. Mô hình minh họa CNM

Container A:
  - Có 1 Sandbox
  - Có 1 Endpoint nối vào Network A

Container B:
  - Có 1 Sandbox
  - Có 2 Endpoint:
     + Nối vào Network A (nối với Container A)
     + Nối vào Network B (nối với nơi khác)

Vì endpoint chỉ kết nối được 1 mạng, nên cần nhiều endpoint nếu container cần tham gia nhiều mạng. Hai container có thể giao tiếp nếu chung network. Dù chạy trên cùng Docker host, các container vẫn hoàn toàn cô lập về mạng nếu không chia sẻ network.

6. Một vài lưu ý quan trọng

Tóm tắt

Thành phầnMô tả
CNMMô hình chuẩn cho mạng Docker
libnetworkThư viện hiện thực CNM
SandboxCô lập mạng của container
EndpointCard mạng ảo gắn vào network
NetworkCầu nối giữa các endpoint
BridgeMạng nội bộ cho container trên 1 host
OverlayKết nối container giữa nhiều host
MacvlanGán MAC thật cho container
NoneKhông có mạng
PluginMạng mở rộng từ Docker Hub

Note

CNM là kiến trúc lý thuyết, libnetwork là hiện thực kỹ thuật, driver là cách triển khai mạng cụ thể.


Share this post:

Previous Post
Networking Commands
Next Post
Using Volumes for Persistent Storage