‫Đối với bài giảng này, bạn cần hiểu một số khái niệm trước đây về mạng và cả xung quanh
‫việc tạo vùng chứa.
‫Bây giờ chúng ta đã hiểu các khái niệm về mạng Docker và cách tất cả các công cụ IP và
‫mạng ảo hoạt động, hãy cùng xem xét một số tùy chọn dòng lệnh để quản lý nó.
‫Đầu tiên, có một mạng lưới rõ ràng. Vì chúng ta có thể tạo nhiều mạng, chúng ta chắc chắn có
‫lệnh ls để liệt kê chúng.
‫Chúng tôi có lệnh kiểm tra thông thường mà bây giờ có lẽ bạn đã quen với tất cả các lệnh kiểm tra khác mà chúng
‫tôi đang thực hiện.
‫Điều đó sẽ hiển thị cho chúng tôi thông tin chi tiết về một mạng cụ thể.
‫Sau đó, chúng ta có một lệnh tạo có trình điều khiển tùy chọn mà chúng ta có thể chỉ định để sử dụng trình
‫điều khiển tích hợp sẵn và của bên thứ ba để tạo một mạng ảo mới.
‫Sau đó, chúng tôi có các lệnh kết nối và ngắt kết nối để thay đổi một vùng chứa đang chạy trực tiếp để một
‫NIC mới được tạo trên mạng ảo cho vùng chứa đó.
‫Nó giống như việc gắn một card mạng vào máy tính khi nó đang chạy.
‫Vì vậy, chúng ta bắt đầu.
‫Vì vậy, trở lại dòng lệnh của tôi. Lấy các khái niệm mà chúng ta vừa học được, tôi thực
‫sự có thể làm một mạng docker ls. Điều này cho tôi thấy tất cả các mạng đã được tạo. Trong trường hợp này, khi bạn chạy cùng một
‫lệnh, có thể bạn sẽ thấy ba lệnh giống nhau. Tùy thuộc vào hệ điều
‫hành và phiên bản Docker của bạn, bạn có thể thấy mạng cầu nối được gọi là docker0
‫hoặc bridge, nhưng cả hai đều có nghĩa giống nhau. Đó là mạng mặc định bắc cầu qua tường lửa NAT tới mạng vật lý
‫mà máy chủ lưu trữ của bạn được kết nối. Cho đến bây giờ, chúng tôi không phải lo lắng về điều
‫đó vì tất cả các thùng chứa của chúng tôi chỉ cần gắn vào mạng đó và hoạt động.
‫Bây giờ chúng ta có vùng chứa Nginx này đang chạy, nếu tôi kiểm tra mạng docker, mạng cầu nối, bạn sẽ thực sự thấy rằng nó liệt
‫kê các vùng chứa được gắn vào mạng đó. Bạn sẽ thấy rằng một Nginx của chúng tôi,
‫mà chúng tôi gọi là webhost, được đính kèm ở đó.
‫Bạn thực sự có thể thấy địa chỉ IP của nó. Và bạn sẽ thấy ở đây rằng các mạng này tự động gán địa chỉ
‫IP và nó hiển thị cho bạn ở đây với cấu hình IPAM mà mạng con mặc định là 172. 17, thường là mạng mặc định
‫cho bất kỳ máy chủ Docker nào.
‫Nhưng nó có thể được thay đổi, và sau đó là cổng cho mạng này, cuối cùng sẽ định tuyến ra
‫mạng vật lý.
‫Nếu chúng ta quay lại ls mạng docker, chúng ta có thể thấy hai mạng khác này. Mạng máy chủ là những gì chúng
‫ta đã nói trước đó là một mạng đặc biệt bỏ qua mạng ảo của Docker và gắn vùng
‫chứa trực tiếp vào giao diện máy chủ.
‫Như bạn có thể tưởng tượng, điều đó có ưu và nhược điểm bởi vì nó ngăn các ranh
‫giới bảo mật của vùng chứa bảo vệ giao diện của vùng chứa đó.
‫Tuy nhiên, trong một số trường hợp nhất định, nó cũng có thể cải thiện hiệu suất của mạng thông lượng cao và giải
‫quyết một số vấn đề khác với phần mềm đặc biệt cụ thể hiện có.
‫Sau đó, chúng tôi có cái cuối cùng trong số không, tương đương với việc có một giao diện trên máy tính của bạn
‫không được gắn với bất kỳ thứ gì, nhưng chúng tôi có thể tạo giao diện của riêng mình.
‫Hãy tạo một mạng Docker ... tạo my_app_net.
‫Bây giờ
‫chúng ta sẽ làm lại mạng docker. Bạn sẽ nhận thấy rằng nó đã tạo ra mạng ảo mới của tôi với trình điều khiển cầu nối.
‫Và đó là bởi vì đó là trình điều khiển mặc định.
‫Đó là một trình điều khiển đơn giản chỉ cần tạo một mạng ảo cục bộ với mạng con của
‫chính nó ở đâu đó xung quanh 172. 17 trở lên, bởi vì nó sẽ tăng dần lên. Vì vậy, 17, rồi 18, 19, 20, v.v.
‫Nó không có bất kỳ tính năng nâng cao nào mà chúng ta có thể thấy sau
‫trong khóa học này, chẳng hạn như các mạng phủ lớp cho phép kết nối mạng riêng tư giữa các máy chủ và các trình điều khiển bên thứ ba khác như Weave.
‫Nếu bạn nhìn vào lệnh tạo mạng của docker với sự trợ giúp, bạn sẽ thấy rằng tôi không chỉ có thể chỉ định trình điều khiển
‫mà tôi muốn sử dụng mà còn có rất nhiều tùy chọn IP và mạng mà bạn
‫có thể cần trong một kịch bản nâng cao.
‫Chúng tôi có thể thực hiện một số việc với các mạng này và cách chúng tôi kết nối chúng với vùng chứa của mình.
‫Chúng ta có thể sử dụng tùy chọn --network khi tạo vùng chứa.
‫Vì vậy, bộ chứa docker hãy chạy tên nginx
‫mới, sau đó là mạng, sau đó là mạng ứng dụng của tôi và
‫sau đó là hình ảnh nginx.
‫Nếu chúng tôi đã kiểm tra mạng docker trên mạng ứng dụng của tôi, bạn sẽ thấy rằng Nginx mới mà tôi vừa tạo hiện đang
‫ở trên mạng đó. Nó có địa chỉ IP mới là 172. 18.
‫Vì vậy, nó là mạng con tiếp theo trong danh sách.
‫Nhưng chúng ta không thực sự phải bắt đầu các vùng chứa mới, bởi vì giống như trong thế
‫giới thực, nơi bạn có thể rút phích cắm và cắm lại các thiết bị Ethernet và kết nối lại với mạng không dây, bạn cũng có thể làm
‫tương tự với các mạng hiện có và các vùng chứa hiện có.
‫Đối với điều này, chúng tôi sử dụng các tùy chọn kết nối và ngắt kết nối mạng docker và bạn có thể sử dụng --help
‫để xem tất cả các tùy chọn ở đó cho mạng Docker.
‫Trong trường hợp này, những gì chúng tôi muốn làm là mạng docker và chúng tôi muốn lấy vùng chứa hiện có mà chúng tôi đã
‫tạo trước tiên và kết nối nó với mạng mới của chúng tôi.
‫Tôi sẽ chọn mạng ứng dụng mới của mình và sau đó tôi sẽ chọn máy chủ web ban đầu mà chúng tôi đã tạo.
‫Bây giờ nếu tôi kiểm tra vùng chứa docker của máy chủ web gốc của mình, bạn sẽ thấy rằng nó thực sự hiện
‫đang ở trên hai mạng. Mạng cầu nối ban đầu và
‫về cơ bản tôi đã làm tương đương với việc cung cấp cho nó một giao diện Ethernet mới trên một
‫mạng khác, với một IP khác được nhận từ DHCP.
‫Vì vậy, bây giờ chúng ta đang ở trên mạng 17 trong mạng 18.
‫Nếu tôi muốn ngắt kết nối đó, tôi có thể làm tương tự chỉ cần ngắt kết nối. Sau đó, nếu tôi quay lại và kiểm tra lại, bạn
‫sẽ thấy rằng nó hiện đã trở lại chỉ với một mạng duy nhất.
‫Như bạn có thể thấy, có rất nhiều tùy chọn thú vị cho mạng Docker và thực sự là mục tiêu cuối cùng ở đây, và một điều tôi thích
‫khoe khoang với các vùng chứa, đó là nếu bạn đang chạy tất cả các ứng dụng trên một máy chủ duy nhất, trong trường
‫hợp này , bạn có thể thực sự bảo vệ chúng. Bởi vì trong thế giới vật lý, nơi chúng
‫ta đang tạo ra các máy ảo và máy chủ trong một mạng, chúng ta thường sử dụng quá mức các cổng và mạng trên các
‫máy chủ ứng dụng của mình.
‫Trong những trường hợp này, nếu bạn lấy các vùng chứa ứng dụng của mình và đặt tất
‫cả chúng trong một mạng cùng nhau trong một mạng ảo, bạn sẽ chỉ để lộ các cổng trên máy chủ của
‫mình mà bạn đặc biệt sử dụng -p với. Và mọi thứ khác an toàn hơn một chút với tường lửa được bảo vệ bên
‫trong mạng ảo của họ.
‫Sau này, khi chúng ta tham gia vào Docker Swarm, chúng ta sẽ thực sự tìm hiểu về
‫mạng đa máy chủ và cách điều này trở nên tốt hơn khi chúng ta bắt đầu mở rộng quy mô và mở rộng quy mô.
‫Để tóm tắt lại, chúng tôi chỉ đề cập đến một loạt các lệnh để quản lý mạng Docker.
‫Chúng tôi đã thử với ls và các lệnh kiểm tra, tạo một mạng Docker và sử dụng trình điều khiển mặc
‫định của bridge.
‫Chúng tôi thực sự không cần sử dụng --driver.
‫Và cuối cùng, chúng tôi đã thử kết nối mạng và các lệnh ngắt kết nối mạng để thêm và sau đó xóa NIC
‫khỏi một vùng chứa đang chạy.