Docker容器单机网络架构全攻略:深入探索桥接方式的奥秘二 docker网络基础1-底层桥接方式2.1 查看宿主机上网络配置2.1.1 通过ifconfig查看2.1.2 通过ip add list查看2.1.3 通过ip add show查看2.2 查看宿主机上当前的网桥设备2.3 查看宿主机上网络桥接设备 docker0 上学习到的 MAC 地址2.4 查看宿主机上 dns 配置2.5 查看容器上 dns配置
Docker容器单机网络架构全攻略:深入探索桥接方式的奥秘
二 docker网络基础1-底层桥接方式
在docker host中安装docker引擎后,会自动创建docker0 linux bridge,默认情况下所有容器在创建时,都会关联到docker0(默认的linux bridge);并且在创建容器时docker会给每个容器分配IP地址,网关,域名服务器,如果宿主机可以访问Internet,那么容器也可以访问Internet。
2.1 查看宿主机上网络配置
2.1.1 通过ifconfig查看
[superman@docker ~]$ ifconfig -a
示例:
[superman@docker ~]$ ifconfig -a
docker0: flags=4099 mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:9cff:fe07:27df prefixlen 64 scopeid 0x20
ether 02:42:9c:07:27:df txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13 bytes 1776 (1.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33: flags=4163 mtu 1500
inet 192.168.0.121 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::bf89:d5fb:2136:8e25 prefixlen 64 scopeid 0x20
ether 00:0c:29:ae:f5:f2 txqueuelen 1000 (Ethernet)
RX packets 6980 bytes 3535173 (3.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1827 bytes 202306 (197.5 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 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
virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:2b:e7:4a 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
virbr0-nic: flags=4098 mtu 1500
ether 52:54:00:2b:e7:4a 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
[superman@docker ~]$
2.1.2 通过ip add list查看
[superman@docker ~]$ ip add list
示例:
[superman@docker ~]$ ip add list
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:ae:f5:f2 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.121/24 brd 192.168.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::bf89:d5fb:2136:8e25/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:2b:e7:4a brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:2b:e7:4a brd ff:ff:ff:ff:ff:ff
5: docker0: mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:9c:07:27:df brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:9cff:fe07:27df/64 scope link
valid_lft forever preferred_lft forever
[superman@docker ~]$
2.1.3 通过ip add show查看
[superman@docker ~]$ ip add show
示例:
[superman@docker ~]$ ip add show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:ae:f5:f2 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.121/24 brd 192.168.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::bf89:d5fb:2136:8e25/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:2b:e7:4a brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:2b:e7:4a brd ff:ff:ff:ff:ff:ff
5: docker0: mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:9c:07:27:df brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:9cff:fe07:27df/64 scope link
valid_lft forever preferred_lft forever
[superman@docker ~]$
2.2 查看宿主机上当前的网桥设备
[superman@docker ~]$ brctl show
示例:
[superman@docker ~]$ brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.02429c0727df no
virbr0 8000.5254002be74a yes virbr0-nic
[superman@docker ~]$
2.3 查看宿主机上网络桥接设备 docker0 上学习到的 MAC 地址
[superman@docker ~]$ brctl showmacs docker0
示例:
[superman@docker ~]$ brctl showmacs docker0
port no mac addr is local? ageing timer
1 7e:e7:1a:c2:e5:11 yes 0.00
1 7e:e7:1a:c2:e5:11 yes 0.00
[superman@docker ~]$
2.4 查看宿主机上 dns 配置
[superman@docker ~]$ cat /etc/resolv.conf
示例:
[superman@docker ~]$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 202.102.224.68
[superman@docker ~]$
[superman@docker ~]$
2.5 查看容器上 dns配置
[superman@docker ~]$ docker attach superman01
/ #
/ # cat /etc/resolv.conf
示例:
[superman@docker ~]$ docker attach superman01
/ #
/ # cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 202.102.224.68
/ #
/ # exit
[superman@docker ~]$
PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我吧!
? 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
