2.1 Các lệnh cơ bản của docker network
Mạng trong 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. Các lệnh docker network
cung cấp khả năng linh hoạt để tạo, cấu hình và quản lý mạng, đảm bảo cách ly và kiểm soát tương tác mạng của container. Trong bài giảng này, tụi mình sẽ đi phân tích kỹ các lệnh docker network
và cách sử dụng chúng để quản lý mạng.
Các lệnh cơ bản của docker network
:
- docker network create
- docker network ls
- docker network inspect
- docker network connect
- docker network disconnect
- docker network rm
Tạo mạng: lệnh docker network create
Lệnh docker network create
được sử dụng để tạo mạng mới. Bạn có thể tạo các mạng với các driver khác nhau, như bridge
, host
, overlay
, và macvlan
.
Ví dụ tạo mạng với driver bridge
docker network create --driver bridge my_bridge_network
Ví dụ tạo mạng với driver overlay
docker network create --driver overlay my_overlay_network
Ví dụ tạo mạng với driver macvlan
docker network create --driver macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 my_macvlan_network
2.2 Lệnh làm việc với mạng
1. Xem các mạng có sẵn: lệnh docker network ls
Lệnh docker network ls
hiển thị danh sách tất cả các mạng đã tạo trong Docker.
docker network ls
Kết quả của lệnh sẽ hiển thị như sau:
NETWORK ID NAME DRIVER SCOPE
0e7e2d58fe94 bridge bridge local
9c84fdfc69ee host host local
71cfb6a79d9e none null local
2. Xem thông tin về mạng: lệnh docker network inspect
Lệnh docker network inspect
cho phép bạn nhận thông tin chi tiết về một mạng cụ thể, bao gồm các container được kết nối, cấu hình subnet và gateway.
Ví dụ sử dụng:
docker network inspect my_bridge_network
Kết quả của lệnh sẽ chứa thông tin về mạng ở định dạng JSON:
[
{
"Name": "my_bridge_network",
"Id": "0e7e2d58fe94",
"Created": "2021-01-01T00:00:00.000000000Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"container_id": {
"Name": "my_container",
"EndpointID": "6c52f8c75c1e",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
3. Kết nối container vào mạng: lệnh docker network connect
Lệnh docker network connect
được sử dụng để kết nối một container đang chạy vào mạng hiện có.
Ví dụ sử dụng:
docker network connect my_bridge_network my_container
4. Ngắt kết nối container khỏi mạng: lệnh docker network disconnect
Lệnh docker network disconnect
được sử dụng để ngắt kết nối container khỏi mạng.
Ví dụ sử dụng:
docker network disconnect my_bridge_network my_container
5. Xóa mạng: lệnh docker network rm
Lệnh docker network rm
được sử dụng để xóa mạng. Lưu ý rằng mạng chỉ có thể bị xóa sau khi tất cả các container được kết nối đã được ngắt kết nối.
Ví dụ sử dụng:
docker network rm my_bridge_network
2.3 Ví dụ lệnh docker network
Ví dụ cách sử dụng lệnh docker network
Ví dụ 1: Tạo và sử dụng mạng bridge
Tạo mạng:
docker network create --driver bridge my_bridge_network
Khởi chạy container và kết nối nó vào mạng:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network redis
Kiểm tra mạng:
docker network inspect my_bridge_network
Kết quả lệnh docker network inspect
sẽ chứa thông tin chi tiết về mạng dưới dạng JSON. Để làm đầu ra dễ đọc hơn, có thể sử dụng tiện ích jq
:
docker network inspect my_bridge_network | jq
Tiện ích này hữu ích cho việc lọc và xem dữ liệu mạng có cấu trúc, chẳng hạn như các container được kết nối, địa chỉ IP của chúng và các cài đặt mạng con.
Ví dụ 2: Kết nối và ngắt kết nối container
Khởi chạy container:
docker run -d --name my_container nginx
Kết nối container vào mạng:
docker network connect my_bridge_network my_container
Ngắt kết nối container khỏi mạng:
docker network disconnect my_bridge_network my_container
GO TO FULL VERSION