私のホームネットワーク用のDockerイメージを設定しようとしていますdhcpd
。
私は複製しましたこのリポジトリ、私のコンピュータではうまくいきました。dhcpd.conf
これを実行するには、次のコマンドを使用してこのコマンドを実行する必要がありますdocker run
。
docker run -it \
--rm --init \
--net host \
-v "$(pwd)/data":/data \
networkboot/dhcpd eth0
効果はとても良いです。
しかし、DNSドッカーと一緒にバンドルしたいので、ファイルに変換しようとしています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の要求を無視します。これが望ましくない場合は、eth0インターフェイスが接続されているdhcpd.confファイルのネットワークセグメントにあります。 dhcpd
のサブネット宣言を作成します。 **
私が何か間違っているようですが、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