1.1 Driver mạng Bridge
Các driver mạng Docker cho phép các container tương tác với nhau và với các mạng bên ngoài. Docker cung cấp nhiều driver mạng khác nhau, mỗi driver có đặc trưng riêng và phù hợp với các tình huống sử dụng cụ thể. Trong bài giảng này, chúng ta sẽ tìm hiểu bốn driver mạng chính: bridge, host, none và overlay.
Driver mạng bridge là driver mạng mặc định trong Docker. Driver này tạo ra một mạng nội bộ riêng, nơi các container có thể giao tiếp với nhau. Mạng này được cách ly khỏi mạng bên ngoài của host.
Đặc điểm:
- Các container được kết nối với mạng
bridge
có thể tương tác với nhau thông qua địa chỉ IP. - Các mạng bên ngoài không thể trực tiếp tương tác với các container trong mạng
bridge
nếu không thiết lập chuyển tiếp cổng. - Dễ sử dụng cho các tình huống phát triển và kiểm thử cục bộ.
Ví dụ sử dụng:
Khi tạo container mà không chỉ định mạng, nó sẽ tự động kết nối với mạng bridge
.
docker run -d --name my_container nginx
Để thiết lập chuyển tiếp cổng, sử dụng cờ -p
.
docker run -d -p 8080:80 --name my_container nginx
1.2 Driver mạng Host
Driver mạng host
cho phép container sử dụng stack mạng của máy chủ trực tiếp. Điều này có nghĩa là container sẽ có cùng địa chỉ IP với host và có thể sử dụng tất cả các giao diện mạng của host.
Đặc điểm:
- Các container sử dụng driver mạng
host
hoạt động nhanh hơn do giảm tải hệ thống ảo hóa mạng. - Các container có quyền truy cập vào cùng các giao diện mạng như host, điều này có thể tăng nguy cơ bảo mật.
- Áp dụng trong các kịch bản cần hiệu năng mạng cao hoặc cấu hình mạng đặc thù.
Ví dụ sử dụng:
docker run -d --network host --name my_container nginx
1.3 Driver mạng None
Driver mạng none
tắt tất cả các khả năng mạng của container. Container được kết nối với mạng none không có giao diện mạng, điều này hoàn toàn cách ly nó khỏi các container và mạng khác.
Đặc điểm:
- Hoàn toàn cách ly container khỏi tất cả các mạng.
- Hữu ích cho các container không cần mạng, ví dụ, để thực hiện các nhiệm vụ không phụ thuộc vào mạng.
Ví dụ sử dụng:
docker run -d --network none --name my_container busybox
1.4 Mạng driver Overlay
Driver mạng overlay
được sử dụng để tạo một mạng phân tán, bao phủ nhiều host Docker khác nhau. Driver này thường được sử dụng trong Docker Swarm hoặc Kubernetes để đảm bảo giao tiếp mạng giữa các container trên các host khác nhau.
Đặc điểm:
- Đảm bảo kết nối giữa các container trên các host khác nhau.
- Yêu cầu cấu hình clustering như Docker Swarm.
- Cho phép tạo các mạng ảo trên các mạng hiện có, đảm bảo mức độ cách ly và bảo mật cao.
Ví dụ sử dụng:
Để sử dụng driver overlay
, trước tiên cần tạo một cluster Docker Swarm.
1. Khởi tạo Docker Swarm:
docker swarm init
2. Tạo mạng overlay:
docker network create -d overlay my_overlay_network
3. Chạy các container với kết nối tới mạng overlay
:
docker service create --name my_service --network my_overlay_network nginx
1.5 So sánh các driver mạng
So sánh các driver mạng khác nhau
Driver mạng | Cô lập | Hiệu suất | Ứng dụng | Đặc điểm |
---|---|---|---|---|
bridge | Cao | Vừa phải | Mạng cục bộ | Mạng cô lập mặc định |
host | Thấp | Cao | Hiệu suất | Chia sẻ ngăn xếp mạng với host |
none | Hoàn toàn | Cao nhất | Cô lập | Cô lập hoàn toàn với mạng |
overlay | Cao | Cao | Mạng phân tán | Liên lạc giữa các container trên các host khác nhau |
Ứng dụng driver mạng
-
Bridge
: sử dụng cho các ứng dụng cục bộ và thử nghiệm khi container cần tương tác với nhau nhưng cần được cô lập khỏi mạng bên ngoài. -
Host
: áp dụng cho các ứng dụng yêu cầu hiệu suất mạng cao hoặc cấu hình mạng đặc biệt, nơi cô lập mạng không phải là ưu tiên. -
None
: sử dụng cho các container hoàn toàn cô lập, không yêu cầu tương tác mạng. -
Overlay
: sử dụng cho các ứng dụng phân tán hoạt động trong cluster, cần đảm bảo liên lạc giữa các container trên các host khác nhau.
GO TO FULL VERSION