ITPub博客

首页 > 云计算 > Docker/K8 > 10 Docker容器单机网络架构全攻略:深入探索桥接方式的奥秘

10 Docker容器单机网络架构全攻略:深入探索桥接方式的奥秘

原创 Docker/K8 作者:shuchaoyang 时间:2024-11-08 22:04:37 0 删除 编辑

10 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配置

10 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<UP,BROADCAST,MULTICAST>  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<link>
       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<UP,BROADCAST,RUNNING,MULTICAST>  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<link>
       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<UP,LOOPBACK,RUNNING>  mtu 65536
       inet 127.0.0.1  netmask 255.0.0.0
       inet6 ::1  prefixlen 128  scopeid 0x10<host>
       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<UP,BROADCAST,MULTICAST>  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<BROADCAST,MULTICAST>  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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <NO-CARRIER,BROADCAST,MULTICAST,UP> 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: <BROADCAST,MULTICAST> 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: <NO-CARRIER,BROADCAST,MULTICAST,UP> 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <NO-CARRIER,BROADCAST,MULTICAST,UP> 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: <BROADCAST,MULTICAST> 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: <NO-CARRIER,BROADCAST,MULTICAST,UP> 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 ~] $

原文链接: https://mp.weixin.qq.com/s?__biz=MzkxNzI1OTE3Mw==&mid=2247492176&idx=1&sn=4079f10f9996bc79bc49038ae96af39d&chksm=c141f49af6367d8cd0b3a6d25fa63f627652120f93bd0bbe37026e6eb0cbf20baa07bcf43d00&token=1075406688&lang=zh_CN#rd

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/291614/viewspace-3048179/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303478