Docker网络模式
列出所有网络命令
[root@localhost ~]# docker network
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
查看网络
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
8291336329d7 bridge bridge local
6bdbc5de5595 host host local
1cf8e3bc325d none null local
查询容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
829ec7f9d031
registry:latest “/entrypoint.sh /etc…” 2 hours ago Up 26 minutes 0.0.0.0:5000->5000/tcp peaceful_northcutt
不进入容器查询网络ip
docker使用的网络实际上和宿主机一样,在容器内看到的网卡ip是宿主机ip
[root@localhost ~]# docker exec -it 829ec7f9d031 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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
8: eth0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16
brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
查看虚拟机的ip(会发现是同一网段)
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:93:a9:8a brd ff:ff:ff:ff:ff:ff
inet 192.168.200.23/24 brd 192.168.200.255 scope global eno16777728
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe93:a98a/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:f0:8b:68:f6 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:f0ff:fe8b:68f6/64 scope link
valid_lft forever preferred_lft forever
9: vethb5144d7@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP
link/ether e2:b4:0d:da:d2:76 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::e0b4:dff:feda:d276/64 scope link
valid_lft forever preferred_lft forever
查看网段详情信息
一
bridge模式,使用–net=bridge指定默认模式,不用指定默认就是这种网络模式。这种模式会为每个容器分配一个独立的Network Namespace。类似于vmware的nat网络模式。同一个宿主机上的所有容器会在同一个网段下,相互之间是可以通信的。
[root@localhost ~]# docker network inspect bridge
[
{
“Name”: “bridge”,
“Id”: “8291336329d7b0276eb709544cd5b375e6961c14a8f3a23b578a198e1b074b84”,
“Created”: “2020-11-19T02:48:42.239285979+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,
"Cont