Docker 컨테이너 내부에서 해당 컨테이너가 Linux 호스트 또는 Docker Machine에서 기본적으로 실행되는지 여부를 확인할 수있는 방법이 있습니까?Docker 컨테이너가 원래 실행 중이거나 Docker Machine을 사용 중인지 여부를 프로그래밍 방식으로 감지 할 수 있습니까?
질문의 배경 내 톰캣 기반 컨테이너에 JMX를 사용하려는 것입니다,하지만, 나는 호스트의 외부 IP 주소를 알아야합니다
- 하는 Docker-에서 실행 머신, 이건 192.168.99.100과 비슷합니다.
- Linux에서 기본적으로 실행되는 호스트의 IP 주소입니다.
- Mac 용 Docker에서 실행되는 호스트의 IP 주소이기도합니다.
나는 JMX가 활성화 된 상태에서 출시 할 Docker Tomcat 이미지가 있지만 사람들이 기본적으로 Docker-Machine에서 사용하거나 Docker-Machine에서 실행할지 여부를 알지 못하므로 어느 것을 Tomcat을 시작할 때 java.rmi.server.hostname
매개 변수를 제공하는 IP 주소.
(이 실행중인 경우 또는 발견) 중 하나
- 컨테이너 내부에서 해당 IP 주소를 찾을 수있는 방법이 있나요, 또는
- 은 외부에서 그것을 찾을 수 있습니다 (예를 들어 고정 표시기-작성에) 그리고 시작시 컨테이너로 전달할 수 있습니까? 이 경우
DOCKER_HOST
환경 변수가 도움이 될 수 있습니까? Docker Machine을 실행하면tcp://192.168.99.100:2376
으로 설정됩니다. Docker Machine을 실행하지 않을 때도이 변수가 사용됩니까?
컨테이너 (또는 Docker Compose)를 시작할 때 수동으로 IP 주소를 제공해야하는 상황을 피하고자합니다.
두 번째 옵션과 관련하여 [docker api] (https://docs.docker.com/engine/reference/api/docker_remote_api/)를 사용하고 컨테이너 정보를 얻을 수 있습니다. –
@ Mohsen89z docker에서 어떤 유형의 호스트를 실행 중인지 알아 보려면 어떻게해야합니까? – Matt
나는 그것을 실행하는 호스트로부터 실행 시간에 환경 변수를 주입하지 않고하기가 어려울 것이라고 생각한다. 사람들을 위해 정보를 수집하는 컨테이너를 실행하는 스크립트를 설정할 수 있습니다. 또는 docker에서 실행되는 [jolokia] (https://jolokia.org)를 시도해보십시오. – Matt