docker容器之间互联, 默认是创建一个虚拟局域网络, DHCP分配IP地址, 从而桥接在一起互通;
整个虚拟网络内的所有容器 与 宿主机 是 NAT端口映射模式;

要容器内查询 ip地址 和 端口映射情况;

查询 网络模式
docker network ls
name有 bridge,host,none

查询 网络IP与容器的情况
docker network inspect [网络模式的name]
比如:
docker network inspect bridge
得到:

"4b32914e77989ecb74324ee81e4e9596be44902bd5ef95afa7639355824dcfa9": {
    "Name": "hyperf2",
    "EndpointID": "e84bd168a8f93a41712dfbcf5b2c0748e61a972fbea24325b78976a96b98d8a9",
    "MacAddress": "02:42:ac:11:00:03",
    "IPv4Address": "172.17.0.3/16",
    "IPv6Address": ""
},
"5e313d3e68a8069950a6d0f971d88333c155ec396dc5f5225611256e4ae935e3": {
    "Name": "hyperf",
    "EndpointID": "a5d7aef7dfc3114fe73dcb820bffc391c689bf5325d10b61d9005b96d14d2f2d",
    "MacAddress": "02:42:ac:11:00:02",
    "IPv4Address": "172.17.0.2/16",
    "IPv6Address": ""
},

查询 容器的端口映射情况
示例:
C:UsersAdministrator>docker port hyperf
9501/tcp -> 0.0.0.0:22222
9502/tcp -> 0.0.0.0:33333

示例:
C:UsersAdministrator>docker port hyperf2
9503/tcp -> 0.0.0.0:44444

docker run 的时候,指定 --network [网络Id]
docker network create --driver bridge my_net可以创建一个指定网络ID的虚拟局域网,bridge模式

同一个虚拟局域网, 容器内 如何知道 其他容器的IP地址 ?
给IP地址一个别名, docker run 的时候 --network my_net --network-alias php

标签: none

添加新评论