docker 데몬이 샌드박스에 인터페이스를 추가할 수 없다는 것은 무엇을 의미합니까?

docker 데몬이 샌드박스에 인터페이스를 추가할 수 없다는 것은 무엇을 의미합니까?

저는 몇 개의 도커 컨테이너를 실행 중이고 이를 재구성하기로 결정했습니다(큰 무리를 두는 대신 종속 서비스를 수집하는 폴더로 구성을 분할). 이사하기 전까지 모든 일이 잘 진행됐어요홈 어시스턴트구성.

"외부적으로" 표시되는 모든 컨테이너(개인 Docker 네트워크 외부)가 단일 네트워크를 공유하도록 강제하는 것 외에는 이전 구성에서 아무 것도 변경하지 않았습니다. 20개 이상의 다른 컨테이너와 함께 작동합니다.

  hass:
    devices:
      - /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0:/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
    image: homeassistant/home-assistant:2022.7
    network_mode: host
    restart: unless-stopped
    volumes:
      - /etc/docker/domotique/data/hass:/config
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      - mqtt
    networks:
      - srv

(...)

networks:
  srv:
    external: true
    name: srv

이 컨테이너를 시작하는 동안 오류가 발생했습니다.

root@srv /e/d/domotique# docker-compose up hass
[+] Running 1/0
 ⠿ Container domotique-mqtt-1  Running                                                                             0.0s
Attaching to domotique-hass-1
Error response from daemon: failed to add interface veth6eb29e9 to sandbox: error setting interface "veth6eb29e9" IP to 172.18.0.33/16: cannot program address 172.18.0.33/16 in sandbox interface because it conflicts with existing route {Ifindex: 7 Dst: 172.18.0.0/16 Src: 172.18.0.1 Gw: <nil> Flags: [] Table: 254}

주석을 달면 사라집니다 network_mode: host. 실행 중인 컨테이너에는 IP가 있습니다 172.18.0.33/16. 엔터테인먼트를 강제하기 위해 기존 홈어시스턴트 컨테이너를 제거하는 것은 도움이 되지 않습니다.

이 경우 이 메시지는 무엇을 의미하나요?

답변1

문제는 network_mode: host둘 다 사용하는데 네트워크를 ( srv)로 사용하도록 설정했다는 것입니다.

해당 networks섹션을 제거하면 문제가 해결되었습니다.

관련 정보