我正在尝试为我的家庭网络设置dhcpd
Docker 映像。
我已经克隆了这个存储库,并让它与我的工作正常dhcpd.conf
要运行它,我必须使用以下命令执行此命令docker run
:
docker run -it \
--rm --init \
--net host \
-v "$(pwd)/data":/data \
networkboot/dhcpd eth0
效果非常好。
但我想将其与我的 DNS docker 捆绑在一起,所以我尝试将其转换为文件docker-compose.yml
:
version: '2.2'
services:
#
# Imagine the DNS stuff here
#
dhcp:
build:
context: ./dhcp
network: host
args:
- eth0
container_name: dhcpd
volumes:
- ./dhcp/data:/data
这不太顺利:
如果要向主机网络提供 DHCP 服务,则必须添加“docker run”选项“--net=host”。
dhcpd |没有 eth0 (172.19.0.2) 的子网声明。
dhcpd | ** 忽略 eth0 上的请求。如果这不是
dhcpd |你想要,请写一个子网声明
dhcpd |在网段
dhcpd | dhcpd.conf 文件中eth0 连接到哪个接口。 **
我猜我做错了什么,network: host part
但我是 docker 新手,所以我不知道哪里出了问题。
$ docker-compose version
docker-compose version 1.21.0, build unknown
docker-py version: 3.4.1
CPython version: 3.7.3
OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019
答案1
解决方案显然是添加network_mode: host
到文件中
所以现在是:
version: '2.2'
services:
dhcp:
build:
context: ./dhcp
network: host
args:
- eth0
container_name: dhcpd
volumes:
- ./dhcp/data:/data
network_mode: host