Fix*_*xeR 6 networking kvm docker
我有一台运行多个虚拟机的服务器。我正在使用 Jira 安装启动一个容器,我需要为容器分配与 DHCP 不同的地址,而不是使用主机 IP 地址。我是菜鸟所以请解释一下
200*_*ess 12
ad22 的答案中建议的技术需要使用 libnetwork 分支自定义构建 Docker 引擎。现在,距离该 hack 开发已有四年多了,DHCP 功能仍然没有合并到标准 Docker 引擎中,并且分支已经远远落后于主线代码。
自 2019 年底以来,可以使用devplayer0 的docker-net-dhcp
插件通过 DHCP 为 Docker 容器分配 IP 地址,该插件与标准 Docker 引擎配合使用。当您创建新容器时,此插件会启动 Busybox udhcpc 客户端来获取 DHCP 租约,然后运行 udhcpc(在容器 PID 命名空间之外的进程中)以根据需要续订租约。
moe*_*ius -2
您可以使用 docker 网络macvlan
驱动程序来实现此目的。根据文档:
\n\n\n...您可以使用 macvlan 网络驱动程序为每个容器\xe2\x80\x99s 虚拟网络接口分配 MAC 地址,使其看起来像是直接连接到物理网络的物理网络接口。
\n
因此本质上,虚拟网络接口将使用主机上暴露的物理网络接口来通告自己的虚拟MAC地址。然后,该信息将被广播到运行 DHCP 服务器的 LAN,并且虚拟接口将被分配一个 IP。
\n\n让它运行的步骤是:
\n\n创建使用驱动程序的 docker 网络macvlan
:
docker network create \\\n --driver macvlan \\\n --subnet=172.16.86.0/24 \\\n --gateway=172.16.86.1 \\\n --opt parent=eth0 lan_net\n
Run Code Online (Sandbox Code Playgroud)\n\n子网和网关将是 LAN 网络(DHCP 所在的网络)的子网和网关。该选项指定主机parent
上的物理接口,您希望通过该物理接口将虚拟接口暴露给 LAN 网络。
使用新创建的网络运行容器:
\n\ndocker run -it --rm --net=lan_net alpine\n
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
11629 次 |
最近记录: |