Giới thiệu
Trong lab này, bạn sẽ chạy container, kiểm tra cấu hình mạng mặc định, so sánh các chế độ networking khác nhau (bridge, host, custom bridge, macvlan) và quan sát sự khác biệt. Đây là phần quan trọng giúp bạn hiểu rõ cách Docker networking hoạt động trong môi trường thực tế.
1. Chạy Container và Kiểm Tra Cấu Hình Mạng
Bước 1: Trên máy học viên, mở Visual Studio Code.
Bước 2: Trên thanh menu, chọn Terminal > New Terminal [Ctrl-Shift-`].
Bước 3: Quan sát terminal hiển thị ở phía dưới cửa sổ VS Code.
Bước 4: Chuyển thư mục làm việc:
cd ~/labs/lab05
Bước 5: Chạy container Alpine:
docker run -itd --name alpine_net registry.git.lab/cisco-devops/containers/alpine
2. Liệt Kê và Inspect Network
Bước 6: Liệt kê các network có sẵn:
docker network ls
Bước 7: Inspect network mặc định (bridge):
docker network inspect bridge
Quan sát subnet, default gateway và các container đang kết nối.
3. Kết Nối Vào Container và So Sánh
Bước 8: Truy cập container:
docker exec -it alpine_net sh
Bước 9: Kiểm tra địa chỉ IP và MAC:
ip addr show
Bước 10: Kiểm tra bảng định tuyến:
ip route list
So sánh với thông tin từ lệnh docker network inspect.
Bước 11: Thoát khỏi container:
exit
4. Sử Dụng Host Networking
Bước 12: Chạy container Python HTTP server mà không gán host network:
docker run -itd --name py3_net registry.git.lab/cisco-devops/containers/python37:latest python3 -m http.server 8000
Bước 13: Mở trình duyệt và thử truy cập:
Không thể kết nối vì chưa expose port.
Bước 14: Xoá container:
docker container rm -f py3_net
Bước 15: Chạy lại container với host networking:
docker run --network=host -itd --name py3_net registry.git.lab/cisco-devops/containers/python37:latest python3 -m http.server 8000
Bước 16: Mở lại trình duyệt và truy cập:
Lần này đã kết nối thành công.
5. Tạo Custom Bridge Network
Bước 17: Kiểm tra IP config trên host:
ip address ip link ip route
Bước 18: Tạo custom bridge:
docker network create -d bridge my_custom_bridge
Bước 19: Gắn container alpine_net vào custom bridge:
docker network connect my_custom_bridge alpine_net
Bước 20: Inspect custom bridge:
docker network inspect my_custom_bridge
Bước 21: So sánh IP config sau khi gắn thêm mạng:
ip address ip link ip route
6. Tạo Macvlan Network
Bước 22: Tạo mạng macvlan (thay ens160 bằng interface của bạn):
docker network create -d macvlan \ --subnet=192.168.10.0/24 \ --gateway=192.168.10.1 \ -o parent=ens160 my_custom_macvlan
Bước 23: Gắn container alpine_net vào macvlan:
docker network connect my_custom_macvlan alpine_net
Bước 24: Inspect cấu hình macvlan:
docker network inspect my_custom_macvlan
7. Kết luận
Trong lab này, bạn đã:
Đây là nền tảng quan trọng để triển khai các ứng dụng container phức tạp với yêu cầu networking đa dạng.
Trong lab này, bạn sẽ chạy container, kiểm tra cấu hình mạng mặc định, so sánh các chế độ networking khác nhau (bridge, host, custom bridge, macvlan) và quan sát sự khác biệt. Đây là phần quan trọng giúp bạn hiểu rõ cách Docker networking hoạt động trong môi trường thực tế.
1. Chạy Container và Kiểm Tra Cấu Hình Mạng
Bước 1: Trên máy học viên, mở Visual Studio Code.
Bước 2: Trên thanh menu, chọn Terminal > New Terminal [Ctrl-Shift-`].
Bước 3: Quan sát terminal hiển thị ở phía dưới cửa sổ VS Code.
Bước 4: Chuyển thư mục làm việc:
cd ~/labs/lab05
Bước 5: Chạy container Alpine:
docker run -itd --name alpine_net registry.git.lab/cisco-devops/containers/alpine
2. Liệt Kê và Inspect Network
Bước 6: Liệt kê các network có sẵn:
docker network ls
Bước 7: Inspect network mặc định (bridge):
docker network inspect bridge
Quan sát subnet, default gateway và các container đang kết nối.
3. Kết Nối Vào Container và So Sánh
Bước 8: Truy cập container:
docker exec -it alpine_net sh
Bước 9: Kiểm tra địa chỉ IP và MAC:
ip addr show
Bước 10: Kiểm tra bảng định tuyến:
ip route list
So sánh với thông tin từ lệnh docker network inspect.
Bước 11: Thoát khỏi container:
exit
4. Sử Dụng Host Networking
Bước 12: Chạy container Python HTTP server mà không gán host network:
docker run -itd --name py3_net registry.git.lab/cisco-devops/containers/python37:latest python3 -m http.server 8000
Bước 13: Mở trình duyệt và thử truy cập:
Không thể kết nối vì chưa expose port.
Bước 14: Xoá container:
docker container rm -f py3_net
Bước 15: Chạy lại container với host networking:
docker run --network=host -itd --name py3_net registry.git.lab/cisco-devops/containers/python37:latest python3 -m http.server 8000
Bước 16: Mở lại trình duyệt và truy cập:
Lần này đã kết nối thành công.
5. Tạo Custom Bridge Network
Bước 17: Kiểm tra IP config trên host:
ip address ip link ip route
Bước 18: Tạo custom bridge:
docker network create -d bridge my_custom_bridge
Bước 19: Gắn container alpine_net vào custom bridge:
docker network connect my_custom_bridge alpine_net
Bước 20: Inspect custom bridge:
docker network inspect my_custom_bridge
Bước 21: So sánh IP config sau khi gắn thêm mạng:
ip address ip link ip route
6. Tạo Macvlan Network
Bước 22: Tạo mạng macvlan (thay ens160 bằng interface của bạn):
docker network create -d macvlan \ --subnet=192.168.10.0/24 \ --gateway=192.168.10.1 \ -o parent=ens160 my_custom_macvlan
Bước 23: Gắn container alpine_net vào macvlan:
docker network connect my_custom_macvlan alpine_net
Bước 24: Inspect cấu hình macvlan:
docker network inspect my_custom_macvlan
7. Kết luận
Trong lab này, bạn đã:
- Chạy container và kiểm tra network mặc định.
- So sánh bridge và host network.
- Tạo và gắn custom bridge để thấy khả năng phân giải tên giữa containers.
- Tạo macvlan network để container xuất hiện như một thiết bị độc lập trong mạng vật lý.
Đây là nền tảng quan trọng để triển khai các ứng dụng container phức tạp với yêu cầu networking đa dạng.