我想要得到什么:
我希望能够从一台物理机器(笔记本电脑)连接到多个无线路由器,我无法更改它们的配置,因此它们必须运行 DHCP 服务器。我唯一能做的就是根据需要配置笔记本电脑。据我研究,MACVLAN 是从一台物理机器连接到多个网络的最佳方式。
网络拓扑需要动态,以便新设备可以在运行时加入/断开连接。
我的计划是编写一个在主机上运行的脚本,每次有新设备连接时启动一个容器,并将创建的容器放入新的 macvlan 中。我可以通过始终有一个空闲容器来寻找要连接的新 WIFI 路由器来实现这一点,一旦连接,它就会将信号发送到主机,这样主机就可以创建一个新的 macvlan 并启动一个新容器。
我已经拥有什么:
- 我在 Virtual Box 上运行着 Ubuntu 18.04,其网络设置如下:开启 Premiscouse 模式并启用 NAT 适配器
- 有一个在 Ubuntu 上运行的 Docker 主机,其中有一个容器(Alpine 发行版)。
我已经关注这篇博文. 所以我有一个 docker 容器,运行在 macvlan 上,我可以从 Ubuntu 主机 ping 通它。
以下是 docker network inspect 92360e976cfd 的输出:
[
{
"Name": "pub_net",
"Id": "92360e976cfde6fa9b2aa85b7dfe50a8ebf6e9dbec0c2ad4025de684d388a24c",
"Created": "2020-04-12T23:37:58.441847504+04:00",
"Scope": "local",
"Driver": "macvlan",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "10.0.2.15/24",
"Gateway": "10.0.2.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"e222393f1f6215999bc26626acf0015071e05448763f4155dac4099b86df9796": {
"Name": "modest_turing",
"EndpointID": "0da3d13d8c685b32d421433d34fc6e887e69e55a929df6c1f610cfdf75678590",
"MacAddress": "02:42:0a:00:02:03",
"IPv4Address": "10.0.2.3/24",
"IPv6Address": ""
}
},
"Options": {
"parent": "enp0s3"
},
"Labels": {}
}
]
docker 网络 ls:
9979b3a1a4d1 bridge bridge local
6331af1d0644 host host local
b25f38901cf1 none null local
92360e976cfd pub_net macvlan local
问题:
如何让主机上运行的容器连接WiFi网络?