Docker网络知识补充1创建自定义网桥如果我们想创建一个新的网桥,让其他容器可以使用这个新的网桥,应该如何配置呢?查看dockernetworkcreate命令。[root@docker-server~]#dockernetworkcreate--helpUsage:dockernetworkcreate[OPTIONS]NETWORKCreateanetworkOptions:--attachable启用手动容器附件--aux-addressmap网络驱动程序使用的辅助IPv4或IPv6地址(默认map[])--config-fromstring从中复制配置的网络--config-only只创建一个配置network-d,--driverstring管理网络的驱动程序(默认为“bridge”)--gatewaystringsIPv4或主子网的IPv6网关--ingress创建swarmrouting-mesh网络--internal限制对网络的外部访问--ip-rangestrings从子范围分配容器ip--ipam-driverstringIP地址管理驱动程序(default"default")--ipam-optmap设置IPAM驱动程序特定选项(默认map[])--ipv6EnableIPv6networking--labellist在网络上设置元数据-o,--optmap设置特定于驱动程序的选项(默认map[])--scopestring控制网络的范围--subnetstringsCIDR格式的子网代表网段【最简单用法】[root@docker-server~]#dockernetworkcreatedemo-br0981a814be5bd28e5d7da86c1b1eef25025f94d949bfd960136bfc744870744fb[root@docker-server~]#dockernetworklistNETWORKIDNAMEDRIVERSCOPE355b458a5142bridgebridgelocal981a814be5bddemo-br0bridgelocal0c4d656bf1f6hosthostlocaldb1c96a9b72bnonenulllocal[root@docker-server~]#dockerrun--nametest1--rm-it--networkdemo-br0busybox:latest/#ifconfigeth0Linkencap:EthernetHWaddr02:42:AC:12:00:02inetaddr:172.18.0.2Bcast:172.18.255.255Mask:255.255.0.0UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1RXpackets:6errors:0dropped:0overruns:0frame:0TXpackets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:532(532.0B)TXbytes:0(0.0B)loLinkencap:LocalLoopbackinetaddr:127.0.0.1Mask:255.0.0.0UPLOOPBACKRUNNINGMTU:65536Metric:1RX数据包:0错误:0丢弃:0溢出:0帧:0TX数据包:0错误:0丢弃:0溢出:0载波:0冲突:0txqueuelen:1000RX字节:0(0.0B)TX字节:0(0.0B)/#查看宿主机网络信息#网桥信息[root@docker-server~]#brctlshowbridgenamebridgeidSTPenabledinterfacesbr-981a814be5bd8000.02421e3e0c31noveth4255755docker08000.0242391fabbdnoveth081morethanonenetworkfound6Bridgebr-981a814be5bd,注意我们正在创建一个网络扩展坞errun--nametest1--rm-it--networkdemo-br0busybox:latest指定的demo-br0是网络名,不是网桥名#网卡信息[root@docker-server~]#ipaddrshow#<无效信息已被省略>113:br-981a814be5bd:Welcometowww.byte-edu.com!
">/usr/www/index.html/#httpd-f-h/usr/www/intest3请求/#wget-O--qhttp://172.20.1.0/欢迎访问www.byte-edu.com!
可以正常请求数据2.将容器添加到我们自定义的网络中您可以使用dockernetworkconnect命令将容器连接到网络。[root@docker-server~]#dockernetworkconnect--helpUsage:dockernetworkconnect[OPTIONS]NETWORKCONTAINERConnectacontainertoanetworkOptions:--aliasstrings为容器添加网络范围的别名--ipstringIPv4地址(例如,172.30.100.104)--ip6stringIPv6地址(e.g.,2001:db8::33)--linklist添加链接到另一个容器--link-local-ipstrings为容器添加本地链接地址这个命令是简单理解,有时候我们需要给容器加网卡,其实就是这样的使用方式。如下:[root@docker-server~]#dockernetworkconnectdemo-br0demo1我们把demo1容器连接到demo-br0网络,看看demo1有什么变化:[root@docker-server~]#dockerexec-它demo1/bin/sh/#ifconfigeth0Linkencap:EthernetHWaddr02:42:AC:11:00:02inetaddr:172.17.0.2Bcast:172.17.255.255Mask:255.255.0.0UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1RX数据包:24错误:0丢弃:0溢出:0帧:0TX数据包:29错误:0丢弃:0溢出:0载波:0冲突:0txqueuelen:0RX字节:1894(1.8KiB)TX字节:1982(1.9KiB)eth1Linkencap:EthernetHWaddr02:42:AC:12:00:03inetaddr:172.18.0.3Bcast:172.18.255.255Mask:255.255.0.0UPBROADCASTRUNNINGMULTICASTMTU:1500Metrics:1RXpacket:8错误:0丢弃:0溢出:0帧:0TX数据包:0错误:0丢弃:0溢出:0载体:0冲突:0txqueuelen:0RX字节:656(656.0B)TX字节:0(0.0B)loLinkencap:LocalLoopbackinetaddr:127.0.0.1Mask:255.0.0.0UPLOOPBACKRUNNINGMTU:65536Metric:1RXpackets:0errors:0dropped:0overruns:0frame:0TXpackets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:0(0.0B)TXbytes:0(0.0B)/#你会发现多了一张网卡eth1,所以添加完成了是不是比在VMware上加个网卡更简单?如果不想用,可以直接去掉:[root@docker-server~]#dockernetworkdisconnectdemo-br0demo1/#ifconfigeth0Linkencap:EthernetHWaddr02:42:AC:11:00:02inetaddr:172.17.0.2Bcast:172.17.255.255Mask:255.255.0.0UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1RXpackets:24errors:0dropped:0overruns:0frame:0TXpackets:29errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:1894(1.8KiB)TXbytes:1982(1.9KiB)loLinkencap:LocalLoopbackinetaddr:127.0.0.1Mask:255.0.0.0UPLOOPBACK运行MTU:65536指标:1RX数据包:0错误:0丢弃:0溢出:0帧:0TX数据包:0错误:0丢弃:0溢出:0载体:0冲突:0txqueuelen:1000RX字节:0(0.0B)TXbytes:0(0.0B)/#注:更多技术博客,请关注字节教育官网。如果您在学习或实验过程中遇到任何问题,请及时与作者沟通。[QQ群374106486]
