Docker 작성 - 기본 게이트웨이 경로 비활성화

Docker 작성 - 기본 게이트웨이 경로 비활성화

docker-compose yaml 파일을 사용할 때 docker가 기본 경로를 정의하지 못하도록 할 수 있나요?

내 docker-compose.yaml이 기본 드라이버 및 서브넷을 사용하여 네트워크 ipam을 정의하는 경우 docker(또는 docker compose)와 같은 이음매는 이 네트워크에 연결된 docker의 라우팅 테이블에 기본 경로를 자동으로 할당합니다. 비활성화하는 방법이 있나요?

답변1

불행하게도.

유사한 기능 요청(#20179)은 거의 6년 동안 GitHub 저장소에 공개되었으므로 이 기능이 곧 구현되지 않을 것이라고 진심으로 믿습니다.

현재 해결 방법은 @Zoredache가 언급한 것과 유사하게 컨테이너에 bash 스크립트를 추가하고 환경 변수를 통해 원하는 게이트웨이 IP 주소를 설정하는 것입니다. 스크립트는 기본 경로를 삭제하고 사용자 지정 IP를 게이트웨이로 사용하여 다시 추가합니다.

편집하다:내 스크립트의 본질:

if [ -n "$GW" ]; then
    ip route delete default ;
    ip route add default via $GW ;
fi

컨테이너의 기본 게이트웨이를 변경하려면 적절한 환경 변수를 사용하여 컨테이너를 실행하면 GW=192.168.0.1스크립트가 나머지를 처리합니다. 또한 Dockerfile CMD또는 ENTRYPOINTDockerfile에 스크립트를 포함해야 합니다.
메모:패키지가 필요합니다 iproute2.

가장 좋은 솔루션은 아닐 수도 있지만 작업이 완료됩니다.

관련 정보