如何在 docker 上部署我的自定义 dhcp 服务器?

How can I deploy my custom dhcp server on docker?

所以我为特定的工作编写了自己的自定义 dhcp 服务器,我想使用 docker 部署它。我需要在端口 67/udp 上公开它并使用 network_mode 主机。我尝试像这样配置我的 docker-compose。

version: '3'

services:
  dhcp:
    container_name: custom_dhcp_server
    image: registry.patty.com/custom_dhcp_server:latest
    restart: always
    command: python3 -u src/dhcp_server.py
    ports: 
      - "67:67/udp"
    network_mode: "host"

但我刚刚发现我无法向 network_mode 主机公开端口。那么如何使用 docker.

部署它呢?

but I just found that I can't expose port with network_mode host.

虽然这是真的,但这是因为没有必要。当您 运行 在主机网络命名空间中时,您不需要使用端口映射,因为您在 上侦听的任何端口都是 主机端口。只要您的自定义 DHCP 服务器正在侦听端口 67 上的 UDP 流量,就大功告成了。

如果事情似乎不起作用,您可以尝试一些诊断步骤。

  • 如果您 运行 一个非自定义的 dhcp 服务器会怎样? dnsmasq 对此很有用,因为它的配置相对简单。

  • 将调试代码添加到您的自定义 dhcp 服务器。它是否收到任何请求?

  • 检查你的防火墙;您是否有可能阻止 dhcp 请求?

等等