실행중인 Docker 컨테이너의 IP 주소를 얻는 방법
Mac 용 Docker를 사용하고 있습니다. Docker 컨테이너에서 nodejs 기반 마이크로 서비스를 실행하고 있습니다. 브라우저를 통해 노드 마이크로 서비스를 테스트하고 싶습니다. 실행중인 Docker 컨테이너의 IP 주소를 얻는 방법은 무엇입니까?
호스트에서 컨테이너로 포트를 매핑하지 않으려면 컨테이너의 도커 범위 ip에 직접 액세스 할 수 있습니다. 이 범위는 기본적으로 호스트에서만 액세스됩니다. 다음을 수행하여 컨테이너 네트워크 데이터를 확인할 수 있습니다.
docker inspect <containerNameOrId>
아마도 필터링하는 것이 더 좋습니다.
docker inspect <containerNameOrId> | grep '"IPAddress"' | head -n 1
일반적으로 기본 도커 IP 범위는 172.17.0.0/16
. 모든 것이 정상이고 특별한 네트워크 옵션을 지정하지 않은 경우 호스트가 있어야 172.17.0.1
하고 첫 번째 컨테이너가 있어야합니다 172.17.0.2
.
"bash tricking"대신 docker 기능을 사용하는 또 다른 우아한 방법을 편집하십시오 .
docker inspect -f "{{ .NetworkSettings.IPAddress }}" <containerNameOrId>
--format
옵션을 사용 하여 전체 컨테이너 정보 대신 IP 주소 만 가져옵니다.
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER ID>
용기 내에서 바로 얻고 싶다면 시도해 볼 수 있습니다.
ip a | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep 172.17
최신 Docker 엔진의 경우 다음 명령을 사용하십시오.
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
오래된 엔진의 경우 다음을 사용하십시오.
docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id
플래그를 사용하여 컨테이너를 시작할 수 있습니다 -P
. 이것은 이미지의 노출 된 포트에 임의의 포트를 "할당"합니다.
함께 docker port <container id>
사용하면 무작위로 선택이 끝난 포트를 볼 수 있습니다. 그러면를 통해 액세스 할 수 있습니다 localhost:port
.
제 경우에는 아래 가 Mac에서 작동했습니다 .
Mac에서 직접 컨테이너 IP에 액세스 할 수 없습니다. localhost
포트 포워딩과 함께 사용해야합니다 . 예를 들어 포트가 8000 인 경우http://localhost:8000
https://docs.docker.com/docker-for-mac/networking/#known-limitations-use-cases-and-workarounds를 참조 하십시오.
원래 답변은 https://github.com/docker/for-mac/issues/2670#issuecomment-371249949입니다.
해당 호스트 시스템 외부에서 도커의 IP에 액세스 할 수 없습니다. 브라우저가 다른 컴퓨터에있는 경우 -p 8080:8080
실행 명령 을 전달하여 호스트 포트를 컨테이너 포트에 매핑하는 것이 좋습니다 .
전달 -p
하면 호스트 포트를 컨테이너 포트에 매핑 할 수 있으며 프록시는 해당 호스트 포트에 대한 모든 트래픽을 지정된 컨테이너 포트로 전달하도록 설정됩니다.
참고 URL : https://stackoverflow.com/questions/43692961/how-to-get-ip-address-of-running-docker-container
'code' 카테고리의 다른 글
handlebars.js 템플릿을 사용하여 배열의 마지막 항목에 조건부 (0) | 2020.11.09 |
---|---|
CocoaPods에서 use_frameworks를 사용하는 이유는 무엇입니까? (0) | 2020.11.08 |
Firebug에서 인쇄 매체 CSS를 보는 방법은 무엇입니까? (0) | 2020.11.08 |
객체가 잠겼는지 (동기화 됨) Java에서 차단되지 않도록 어떻게 결정합니까? (0) | 2020.11.08 |
엔디안은 언제 요인이됩니까? (0) | 2020.11.08 |