![Docker 작성 - 기본 게이트웨이 경로 비활성화](https://rvso.com/image/770116/Docker%20%EC%9E%91%EC%84%B1%20-%20%EA%B8%B0%EB%B3%B8%20%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4%20%EA%B2%BD%EB%A1%9C%20%EB%B9%84%ED%99%9C%EC%84%B1%ED%99%94.png)
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
또는 ENTRYPOINT
Dockerfile에 스크립트를 포함해야 합니다.
메모:패키지가 필요합니다 iproute2
.
가장 좋은 솔루션은 아닐 수도 있지만 작업이 완료됩니다.