Docker使用局域网DHCP为容器分配IP地址《王牌》新一季筹备,贾玲要回归?网友:稳了稳了!

6个月前发布 SanS三石
28 0 0

作者:Kation

默认情况下,Docker的容器IP地址是由Docker分配或者在创建容器时指定的。

某些场景下,我们需要把容器部署在局域网内部的网络,比如使用macvlan或者ipvlan网络。

但由局域网内的DHCP服务器为容器分配IP地址,Docker默认情况下是做不到的。

有一个开源Docker插件能帮助我们实现这个功能:devplayer0/docker-net-dhcp: Docker network driver for networking on a host bridge with DHCP-allocated IP addresses (github.com)

支持x86、x64、arm-v7、arm-v8的CPU


安装插件

使用命令行安装Docker插件

docker plugin install ghcr.io/devplayer0/docker-net-dhcp:release-linux-amd64

出现提示时,按y继续安装

Plugin “ghcr.io/devplayer0/docker-net-dhcp:release-linux-amd64” is requesting the following privileges:
– network: [host]
– host pid namespace: [true]
– mount: [/var/run/docker.sock]
– capabilities: [CAP_NET_ADMIN CAP_SYS_ADMIN CAP_SYS_PTRACE] Do you grant the above permissions? [y/N]

查看本地网络

在创建Docker网络前,先使用ifconfig命令查看本地网络,记住你想要部署容器的网络名称

Docker使用局域网DHCP为容器分配IP地址《王牌》新一季筹备,贾玲要回归?网友:稳了稳了!

创建Docker网络

使用以下命令创建网络,

本地网络名称填写上方命令看到的网络名称,例如我这里是br-lan.90

Docker网络名称任意填写不重复的名称,例如app

注意,如果不是x86架构64位CPU,需将amd64替换为:

  • x86架构32位CPU:386

  • ARM架构32位CPU:arm-v7

  • ARM架构64位CPU:arm-v8

docker network create -d ghcr.io/devplayer0/docker-net-dhcp:release-linux-amd64 –ipam-driver null -o bridge=本地网络名称 Docker网络名称

使用IPv6

如果你的网络支持IPv6,插件也是能够支持IPv6的分配的,创建网络的命令有所不同

docker network create -d ghcr.io/devplayer0/docker-net-dhcp:release-linux-amd64 –ipam-driver null -o bridge=本地网络名称 -o ipv6=true Docker网络名称


最后

网络创建好后,在创建容器时,添加参数“–net Docker网络名称”即可使用新创建的网络,使用局域网DHCP服务器分配IP地址

另外,你还可以通过添加参数“–mac-address MAC地址”(例如14:57:da:38:52:2a)指定容器的MAC地址,并在DHCP服务器为该MAC地址分配一个固定IP地址

阅读更多网络存储精彩内容,可前往什么值得买查看

© 版权声明

相关文章

没有相关内容!

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...