- 4. docker 网络
- 4.1 docker network是什么
- 4.1.1 docker不启动,默认网络情况
- 4.1.2 docker启动后,网络情况
- 4.2 docker network 常用基本命令
- 4.2.1 全部 network 命令
- 4.2.2 查看网络: docker network ls
- 4.2.3 创建和删除网络:
- 4.2.3 查看网络源数据
- 4.3 docker network 能解决什么问题
- 4.4 docker network 的网络模式
笔记记录学习尚硅谷周阳老师的 docker 教程
链接地址: https://www.bilibili.com/video/BV1gr4y1U7CY?p=1 4. docker 网络 4.1 docker network是什么 4.1.1 docker不启动,默认网络情况
[root@vm001 admin]# ifconfig ens33: flags=4163mtu 1500 inet 192.168.226.128 netmask 255.255.255.0 broadcast 192.168.226.255 inet6 fe80::8805:f678:285c:a5c0 prefixlen 64 scopeid 0x20 ether 00:0c:29:e7:21:88 txqueuelen 1000 (Ethernet) RX packets 258 bytes 67570 (65.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 140 bytes 16053 (15.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 48 bytes 4080 (3.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 48 bytes 4080 (3.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099 mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:ff:4f:c6 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 1). ens33: linux 宿主机的地址
- 2). lo: local, 本地地址
- 3). virbr0: 在CentOS7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡(virbr0网卡:它还有一个固定的默认IP地址192.168.122.1),是做虚拟机网桥的使用的,其作用是为连接其上的虚机网卡提供 NAT访问外网的功能。
Linux安装在勾选安装系统的时候附带了libvirt服务才会生成的一个东西,如果不需要可以直接将libvirtd服务卸载,
yum remove libvirt-libs.x86_644.1.2 docker启动后,网络情况
会产生一个名为docker0的虚拟网桥
## 启动 docker [root@vm001 admin]# systemctl start docker [root@vm001 admin]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE orderservice6001 v1.1 f5c5e0bb8815 22 hours ago 685MB ## 查询 ip网络信息 [root@vm001 admin]# ifconfig docker0: flags=4163mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:f5ff:fea1:eede prefixlen 64 scopeid 0x20 ether 02:42:f5:a1:ee:de txqueuelen 0 (Ethernet) RX packets 31 bytes 2658 (2.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 52 bytes 18674 (18.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ## 其余省略
查看docker网络模式命令:docker network ls
--------- 默认创建三大网络模式
[root@vm001 admin]# docker network ls NETWORK ID NAME DRIVER SCOPE 3f6c87b881bb bridge bridge local 2e4dd2180dd1 host host local 4fdddc082793 none null local [root@vm001 admin]#4.2 docker network 常用基本命令 4.2.1 全部 network 命令
[root@vm001 admin]# docker network --help Usage: docker network COMMAND Manage networks Commands: connect Connect a container to a network create Create a network disconnect Disconnect a container from a network inspect Display detailed information on one or more networks ls List networks prune Remove all unused networks rm Remove one or more networks Run 'docker network COMMAND --help' for more information on a command.4.2.2 查看网络: docker network ls
在4.1.2 中有
4.2.3 创建和删除网络:创建: docker network create
[root@vm001 admin]# docker network create aa_network e810395831b1e5069e447c6730df76917dbb981c82e5519970c3d33965f463f3 [root@vm001 admin]# docker network ls NETWORK ID NAME DRIVER SCOPE e810395831b1 aa_network bridge local 3f6c87b881bb bridge bridge local 2e4dd2180dd1 host host local 4fdddc082793 none null local
删除: docker network rm
[root@vm001 admin]# docker network rm aa_network aa_network [root@vm001 admin]# docker network ls NETWORK ID NAME DRIVER SCOPE 3f6c87b881bb bridge bridge local 2e4dd2180dd1 host host local 4fdddc082793 none null local4.2.3 查看网络源数据
docker network inspect XXX网络名字
如: docker network inspect bridge
显示出来的就是上面看到的 docker0 那个网桥
[root@vm001 admin]# docker network ls
NETWORK ID NAME DRIVER SCOPE
3f6c87b881bb bridge bridge local
2e4dd2180dd1 host host local
4fdddc082793 none null local
[root@vm001 admin]# docker network inspect bridge
[
{
"Name": "bridge",
"Id": "3f6c87b881bbceedca34897b2fa0794a52269d10de7dd0c84ab694a927325c5d",
"Created": "2022-05-09T23:32:21.056937312+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"b014f0b061b4c39c5d13cfdcbc38e4cbb64cbb8c5939ba4fa2385cbd5628165b": {
"Name": "suspicious_keldysh",
"EndpointID": "1677be925e9c7c04a5a1651f48c16f62b7efca13d96c34e6c82c4607c0dd84f7",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
},
"e2ddfc2abe317482bac74809279e91bbd91a55cbdc2a842720317993d0b1c091": {
"Name": "zk01",
"EndpointID": "304da47bd4bb8e0dafca3ebda522b5587e5d301a30e060dab9ce2c1ab56ab9a7",
"MacAddress": "02:42:ac:11:00:03",
"IPv4Address": "172.17.0.3/16",
"IPv6Address": ""
},
"f27be7bd716acb811fd9d28fa4809e19a60c88db9cceefddafb3eae65a113ee8": {
"Name": "consul",
"EndpointID": "6d3d9798c592807b3c9a9a817d536ce860a28c455e69ccf1340216d0342f461e",
"MacAddress": "02:42:ac:11:00:04",
"IPv4Address": "172.17.0.4/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]
4.3 docker network 能解决什么问题
在单机模式不明显,但是在公司,需要作docker网络管理和容器调用之间的规划。
需要考虑使用常见的网络桥接模式还是其他模式等问题
- 1). 容器间的互联和通信以及端口映射
- 2). 容器IP变动时候可以通过服务名直接网络通信而不受到影响



