Docker IP 컨테이너 목록 가져오기

Docker IP 컨테이너 목록 가져오기

x개의 컨테이너를 실행하는 도커가 있다고 가정해 보겠습니다. 모든 컨테이너 IP 주소 목록을 어떻게든 얻을 수 있나요?

어떻게든 이것을 스크립트로 만들고 싶습니다.

docker ps -a:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                   PORTS               NAMES
614497a23ca7        mongo               "/entrypoint.sh mongo"   7 minutes ago       Up 7 minutes             27017/tcp           some-mongo

Docker API를 살펴보았는데 실제로 제가 원하는 내용이 없는 것 같습니다. 예를 들어 다음과 같이 반환하고 싶습니다.

172.17.0.2
... other ips addresses

나는 docker inspect존재한다는 것을 알고 있으며 데이터를 파이프하고 필드를 추출할 수 있지만 IPAddress이는 단일 컨테이너에 대한 것입니다. 모든 컨테이너 IP 주소를 알고 싶습니다. 이것이 가능한가?

답변1

IP 주소로 Docker 컨테이너를 찾으려면 다음과 같이 컨테이너 ID와 해당 IP 주소를 나열할 수 있습니다.

for container in `docker ps -q`; do ips=`docker inspect $container | grep -i ipaddress | grep -v null | grep -v \"\" | cut -d ':' -f 2`; echo $container$ips; done

다음과 같은 작업을 수행할 수도 있습니다(컨테이너 ID 대신 컨테이너 이름을 인쇄함).

docker ps -q | xargs docker inspect --format "{{range .NetworkSettings.Networks}}{{print .IPAddress}} {{end}}{{.Name}}"

답변2

아래는 어떻습니까?

for i in `docker ps -q`; do echo $i; echo " : "; docker inspect $i | grep -i ipaddress | grep -v null | cut -d ':' -f 2; done

관련 정보