Docker Mạng 101

Hãy cùng học từ Docker.


Có năm mạng chủ yếu trong docker – cầu, máy chủ, lớp phủ, không có và macvlan.

Cầu mạng là mạng mặc định trong docker. Giới thiệu về các mạng này đã được đưa ra trong bài viết trước của tôi về kiến ​​trúc docker.

Trong bài viết này, tôi sẽ chỉ cho bạn phần thực tế của mạng docker. Bạn sẽ biết cách bạn có thể kiểm tra chi tiết mạng docker của mình, cách kết nối với mạng, cách tạo mạng và hơn thế nữa. Vậy hãy bắt đầu.

Bất cứ khi nào bạn chạy một container docker, một cuộc gọi mạng cầu nối mặc định docker0 được liên kết với container trừ khi bất kỳ mạng nào khác được chỉ định. Ví dụ, khi tôi chạy lệnh ifconfig, bạn sẽ nhận được các chi tiết về mạng docker0 của loại cầu cùng với các chi tiết mạng khác.

[email được bảo vệ]: ~ $ ifconfig

docker0: cờ = 4099 mtu 1500

inet 172.17.0.1 netmask 255.255.0.0 phát sóng 172.17.255.255

ether 02: 42: f6: 59: 4a: 5f txqueuelen 0 (Ethernet)

Gói RX 0 byte 0 (0,0 B)

Lỗi RX 0 rớt 0 vượt 0 khung 0

Gói TX 0 byte 0 (0,0 B)

Lỗi TX 0 rớt 0 vượt 0 nhà cung cấp 0 va chạm 0

enp0s3: cờ = 4163 mtu 1500

inet 10.0.2.15 netmask 255.255.255.0 phát sóng 10.0.2.255

inet6 fe80 :: 763e: c0b4: 14df: b273 tiền tố 64 scopeid 0x20

ether 08: 00: 27: 68: 64: 9a txqueuelen 1000 (Ethernet)

Gói RX 2157 byte 2132896 (2.1 MB)

Lỗi RX 0 rớt 0 vượt 0 khung 0

Gói TX 952 byte 151610 (151,6 KB)

Lỗi TX 0 rớt 0 vượt 0 nhà cung cấp 0 va chạm 0

enp0s8: cờ = 4163 mtu 1500

inet 192.168.56.102 netmask 255.255.255.0 phát 192.168.56.255

inet6 fe80 :: 20a: 6c57: 839d: 2652 tiền tố 64 scopeid 0x20

ether 08: 00: 27: 53: 45: 82 txqueuelen 1000 (Ethernet)

Các gói RX 10597 byte 1497146 (1,4 MB)

Lỗi RX 0 rớt 0 vượt 0 khung 0

Gói TX 12058 byte 1730219 (1,7 MB)

Lỗi TX 0 rớt 0 vượt 0 nhà cung cấp 0 va chạm 0

lo: cờ = 73 mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 :: 1 tiền tố 128 scopeid 0x10

vòng lặp txqueuelen 1000 (Vòng lặp cục bộ)

Các gói RX 1196 byte 105394 (105,3 KB)

Lỗi RX 0 rớt 0 vượt 0 khung 0

Gói TX 1196 byte 105394 (105,3 KB)

Lỗi TX 0 rớt 0 vượt 0 nhà cung cấp 0 va chạm 0

Danh sách mạng

Chạy lệnh ls để kiểm tra tất cả các mạng đang chạy trên máy chủ hiện tại. Bạn có thể thấy, bảy mạng hiện đang bao gồm cầu, máy chủ và không có mạng nào được tạo tự động khi bạn cài đặt Docker. Tùy thuộc vào các container tôi đã chạy trong quá khứ, có các chi tiết về các mạng tùy chỉnh khác.

[email được bảo vệ]: ~ $ docker mạng ls

TÊN MẠNG ID TÊN PHẠM VI

cầu fec751a6ae21 cầu địa phương

21943b20735d docker_gwbridge cầu địa phương

f51d1f3379e0 máy chủ lưu trữ cục bộ

ppp8i7tvrxa0 xâm nhập vào lớp phủ

cầu ba68f73abeed mean-app_default cục bộ

cầu d466e75d86fa mean_default cục bộ

5e5d9a192c00 không null cục bộ

Mạng kiểm tra

Bạn có thể chạy lệnh tests để có được tất cả các chi tiết về một loại mạng. Nó cung cấp thông tin về mạng bao gồm Tên, Id, Thời gian tạo, Phạm vi, Trình điều khiển, Cấu hình chi tiết như Mạng con và địa chỉ Cổng. Tôi cũng sẽ cung cấp chi tiết về container nếu có container nào hoạt động. Nếu không, nó sẽ trả về một chuỗi rỗng.

[email được bảo vệ]: ~ $ docker mạng kiểm tra cầu

[

{

"Tên": "cầu",

"Tôi": "fec751a6ae21f20a06cdc6eb823e773caec063b6bf9a388016594e59fd1db485",

"Tạo": "2019-08-01T10: 30: 27.595054009-04: 00",

"Phạm vi": "địa phương",

"Người lái xe": "cầu",

"Cho phépIPv6": sai,

"IPAM": {

"Người lái xe": "mặc định",

"Tùy chọn": vô giá trị,

"Cấu hình": [

{

"Mạng con": "172,17.0.0 / 16",

"Cổng": "172,17.0.1"

}

]

},

"Nội bộ": sai,

"Đính kèm": sai,

"Xâm nhập": sai,

"Cấu hình từ": {

"Mạng": ""

},

"Cấu hình": sai,

"Hộp đựng": {},

"Tùy chọn": {

"com.docker.network.bridge.default_bridge": "thật",

"com.docker.network.bridge.enable_icc": "thật",

"com.docker.network.bridge.enable_ip_masazed": "thật",

"com.docker.network.bridge.host_binding_ipv4": "0,0.0,0",

"com.docker.network.bridge.name": "docker0",

"com.docker.network.driver.mtu": "1500"

},

"Nhãn": {}

}

]

Tạo mạng

Sử dụng lệnh tạo, bạn có thể tạo mạng của riêng bạn. Bạn cần đề cập đến loại trình điều khiển với cờ –do, trong ví dụ dưới đây tôi đang sử dụng loại cầu.

[email được bảo vệ]: ~ $ docker tạo mạng – cầu geekflare_network

08e0da91f6de6c640b1b6f8a8602973f 310b8ee9b04961389b7dfda842ccc409

Chạy lệnh ls để kiểm tra xem mạng đã được tạo chưa.

[email được bảo vệ]: ~ $ docker mạng ls

TÊN MẠNG ID TÊN PHẠM VI

cầu fec751a6ae21 cầu địa phương

21943b20735d docker_gwbridge cầu địa phương

Cầu 08e0da91f6de geekflare_network cục bộ

f51d1f3379e0 máy chủ lưu trữ cục bộ

ppp8i7tvrxa0 xâm nhập vào lớp phủ

cầu ba68f73abeed mean-app_default cục bộ

cầu d466e75d86fa mean_default cục bộ

5e5d9a192c00 không null cục bộ

Bây giờ tôi sẽ chạy một container docker trên mạng mà tôi đã tạo. Tôi đang chạy một container máy chủ apache đơn giản trong lệnh dưới đây.

[email được bảo vệ]: ~ $ docker chạy -it -d –network = geekflare_network httpd

38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002

Chạy lệnh kiểm tra để kiểm tra tất cả các thông tin của geekflare_network. Bạn có thể tìm thấy các chi tiết container lần này trong phần này kiểm tra đầu ra; tên container là xác định_dubinsky.

[email được bảo vệ]: ~ $ docker mạng kiểm tra geekflare_network

[

{

"Tên": "geekflare_network",

"Tôi": "08e0da91f6de6c640b1b6f8a8602973f 310b8ee9b04961389b7dfda842ccc409",

"Tạo": "2019-09-03T13: 56: 36.244295204-04: 00",

"Phạm vi": "địa phương",

"Người lái xe": "cầu",

"Cho phépIPv6": sai,

"IPAM": {

"Người lái xe": "mặc định",

"Tùy chọn": {},

"Cấu hình": [

{

"Mạng con": "172,21.0.0 / 16",

"Cổng": "172,21.0.1"

}

]

},

"Nội bộ": sai,

"Đính kèm": sai,

"Xâm nhập": sai,

"Cấu hình từ": {

"Mạng": ""

},

"Cấu hình": sai,

"Hộp đựng": {

"38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002": {

"Tên": "xác định_dubinsky",

"EndpointID": "30d252720e0f381ba01d6f5414525dff8587abcf3c4920100f112898a52c8a23",

"Địa chỉ MAC": "02: 42: ac: 15: 00: 02",

"Địa chỉ IPv4": "172,21.0.2 / 16",

"Địa chỉ IPv6": ""

}

},

"Tùy chọn": {},

"Nhãn": {}

}

]

Ngắt kết nối mạng

Để ngắt kết nối mạng khỏi container, hãy chạy lệnh bên dưới. Bạn cần đề cập đến tên mạng và tên container trong lệnh ngắt kết nối.

[email được bảo vệ]: ~ $ mạng docker ngắt kết nối geekflare_network xác định_dubinsky

Mạng này đã thắng được chạy container xác định_dubinsky nữa; lĩnh vực container sẽ trống.

[email được bảo vệ]: ~ $ docker mạng kiểm tra geekflare_network

[

{

"Tên": "geekflare_network",

"Tôi": "08e0da91f6de6c640b1b6f8a8602973f 310b8ee9b04961389b7dfda842ccc409",

"Tạo": "2019-09-03T13: 56: 36.244295204-04: 00",

"Phạm vi": "địa phương",

"Người lái xe": "cầu",

"Cho phépIPv6": sai,

"IPAM": {

"Người lái xe": "mặc định",

"Tùy chọn": {},

"Cấu hình": [

{

"Mạng con": "172,21.0.0 / 16",

"Cổng": "172,21.0.1"

}

]

},

"Nội bộ": sai,

"Đính kèm": sai,

"Xâm nhập": sai,

"Cấu hình từ": {

"Mạng": ""

},

"Cấu hình": sai,

"Hộp đựng": {},

"Tùy chọn": {},

"Nhãn": {}

}

]

Để tạo khác với mạng cầu, bạn cần đề cập đến tên trình điều khiển khác với cầu. Để tạo mạng lớp phủ, hãy chạy lệnh bên dưới.

[email được bảo vệ]: ~ $ docker tạo mạng – lớp phủ geekflare_network_2

ynd2858eu1cngwhpc40m3h1nx

[email được bảo vệ]: ~ $ docker mạng ls

TÊN MẠNG ID TÊN PHẠM VI

cầu fec751a6ae21 cầu địa phương

21943b20735d docker_gwbridge cầu địa phương

Cầu 08e0da91f6de geekflare_network cục bộ

f51d1f3379e0 máy chủ lưu trữ cục bộ

ppp8i7tvrxa0 xâm nhập vào lớp phủ

cầu ba68f73abeed mean-app_default cục bộ

cầu d466e75d86fa mean_default cục bộ

5e5d9a192c00 không null cục bộ

ynd2858eu1cn geekflare_network_2 lớp phủ

Để tạo một mạng máy chủ, hãy đề cập đến máy chủ lưu trữ có cờ. Ví dụ dưới đây trả về lỗi vì chỉ một trường hợp mạng máy chủ được phép, đã chạy trước đó. Vì vậy, lệnh này đã giành chiến thắng tạo một mạng chủ khác.

[email được bảo vệ]: ~ $ docker tạo mạng – máy chủ lưu trữ geekflare_network_3

Lỗi phản hồi từ daemon: chỉ một trường hợp của "tổ chức" mạng được cho phép

Phần kết luận

Đó là tất cả về mạng docker và cách bạn có thể kết nối, ngắt kết nối, tạo, kiểm tra mạng docker. Hãy thử các lệnh này để làm quen với mạng Docket. Nếu bạn tò mò trong việc học Net Devops thì hãy xem cái này Khóa học của kẻ thù.

THẺ

  • Docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map