CodeGym /Các khóa học /Docker SELF /Tạo và quản lý mạng

Tạo và quản lý mạng

Docker SELF
Mức độ , Bài học
Có sẵn

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:

  1. docker network create
  2. docker network ls
  3. docker network inspect
  4. docker network connect
  5. docker network disconnect
  6. 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

Terminal


docker network create --driver bridge my_bridge_network 

Ví dụ tạo mạng với driver overlay

Terminal


docker network create --driver overlay my_overlay_network 

Ví dụ tạo mạng với driver macvlan

Terminal

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.

Terminal


docker network ls 

Kết quả của lệnh sẽ hiển thị như sau:

Terminal


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:

Terminal


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:

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:

Terminal


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:

Terminal


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:

Terminal


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:

Terminal

docker network create --driver bridge my_bridge_network 

Khởi chạy container và kết nối nó vào mạng:

Terminal

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:

Terminal

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:

Terminal

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:

Terminal

docker run -d --name my_container nginx 

Kết nối container vào mạng:

Terminal

docker network connect my_bridge_network my_container 

Ngắt kết nối container khỏi mạng:

Terminal

docker network disconnect my_bridge_network my_container 
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION