docker run 명령을 docker-compose.yml 구성으로 변환하는 중에 문제가 발생했습니다.

docker run 명령을 docker-compose.yml 구성으로 변환하는 중에 문제가 발생했습니다.

내 홈 네트워크용 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 partDocker를 처음 접해서 무엇이 잘못되었는지 모르겠습니다.

$ 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

관련 정보