先查看本地 ip
[root@iZwz98zi7ua638a1dxozhyZ ~]# ip addr 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 2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:16:3e:12:13:cd brd ff:ff:ff:ff:ff:ff inet 172.18.115.220/20 brd 172.18.127.255 scope global dynamic eth0 valid_lft 305183662sec preferred_lft 305183662sec 3: docker0: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:9e:98:e4:70 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
可以得到三个结果
lo 127.0.0.1 # 本机回环地址 eth0 172.18.115.220 # 阿里云的私有IP docker0 172.17.0.1 # docker网桥
问题:Docker 是如何处理容器网络访问的?
Docker 使用 Linux 桥接,在宿主机虚拟一个 Docker 容器网桥(docker0),Docker 启动一个容器时会根据 Docker 网桥的网段分配给容器一个 IP 地址,称为 Container-IP,同时 Docker 网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP 直接通信。
Docker 容器网络就很好的利用了 Linux 虚拟网络技术,在本地主机和容器内分别创建一个虚拟接口,并让他们彼此联通(这样一对接口叫 veth pair);
Docker 中的网络接口默认都是虚拟的接口。虚拟接口的优势就是转发效率极高(因为 Linux 是在内核中进行数据的复制来实现虚拟接口之间的数据转发,无需通过外部的网络设备交换),对于本地系统和容器系统来说,虚拟接口跟一个正常的以太网卡相比并没有区别,只是他的速度快很多。
自定义网络基本命令查看
[root@iZwz98zi7ua638a1dxozhyZ ~]# 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.
查看所有网络
[root@iZwz98zi7ua638a1dxozhyZ ~]# docker network ls NETWORK ID NAME DRIVER SCOPE e6b07b1d7593 bridge bridge local 7e7dc5e1d016 host host local 3c720f930b87 none null local
所有网络模式
查看一个具体的网络的详细信息
[root@iZwz98zi7ua638a1dxozhyZ ~]# docker network inspect e6b07b1d7593 [ { "Name": "bridge", "Id": "e6b07b1d7593606ed2d9ebab36ddf09ad40f37d61e7933c76d8a52ba396b3565", "Created": "2021-07-05T20:58:03.67328693+08:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.17.0.0/16" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": {}, "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": {} } ]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)