Docker 컨테이너의 IP 주소 가져오기

Isaac Tony 2023년1월30일
  1. 브리지 네트워크에 연결하고 Docker 컨테이너의 IP 주소 가져오기
  2. docker inspect를 사용하여 Docker 컨테이너의 IP 주소 가져오기
Docker 컨테이너의 IP 주소 가져오기

이 자습서는 Docker 컨테이너 IP 주소의 IP 주소를 가져오는 방법을 보여줍니다.

브리지 네트워크에 연결하고 Docker 컨테이너의 IP 주소 가져오기

도커 컨테이너가 편리한 중요한 이유 중 하나는 쉽게 연결할 수 있기 때문입니다. 이를 통해 컨테이너는 통신하고 리소스를 쉽게 공유할 수 있습니다.

컨테이너를 도커 작업 부하 없이 연결할 수도 있습니다.

이 기사는 도커 네트워킹에 관한 것이 아닙니다. 따라서 우리는 도커 네트워킹의 세부 사항을 탐구하지 않을 것입니다. 그러나 docker는 브리지 드라이버를 사용하여 네트워킹을 플러그 가능하게 만드는 다양한 드라이버를 제공합니다.

Docker를 사용하면 브리지 드라이버라고 하는 기본 드라이버를 사용하여 네트워크를 만들 수 있습니다. 그러나 브리지 네트워크는 호스트의 컨테이너로 제한된 범위로 비공개입니다.

호스트와 이전에 가지고 있는 기본 네트워크를 볼 수 있습니다. 모든 도커 설치에는 일반적으로 아래에 표시된 세 가지 기본 네트워크가 포함됩니다.

isaac@DESKTOP-HV44HT6:~$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
9729860fa596   bridge    bridge    local
0667c3f7d0f0   host      host      local
c3273b158256   none      null      local

Docker는 달리 지정하지 않는 한 브리지 네트워크에서 항상 새 컨테이너를 시작합니다.

컨테이너 IP 주소는 네트워킹 도커 컨테이너의 필수적인 부분입니다. 일반적으로 컨테이너에는 연결하는 모든 네트워크에 대한 IP 주소가 할당됩니다.

반면에 아래 명령을 사용하여 수동으로 도커 컨테이너를 브리지 네트워크에 연결할 수도 있습니다.

$ docker run -dt rabbitmq

그러면 도커 컨테이너가 생성되어 브리지 네트워크에 할당됩니다. 네트워크를 검사하여 연결되어 있는지 확인하기 전에 먼저 컨테이너가 실행 중인지 확인해야 합니다.

$ docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED              STATUS              PORTS                                                 NAMES
42487cad0390   rabbitmq   "docker-entrypoint.s…"   About a minute ago   Up About a minute   4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp   compassionate_keller

브리지 네트워크를 검사하면 컨테이너의 IP 주소 및 컨테이너의 기본 서브넷과 같은 다른 세부 정보 중에서 네트워크에 연결된 컨테이너를 볼 수 있습니다. 세부 정보는 아래와 같이 JSON 형식으로 반환됩니다.

~$ docker network inspect bridge

출력:

"ConfigOnly": false,
        "Containers": {
            "42487cad0390a8de6d1a88bc1d6c09ffdf3162dc85d4d5d3dc70200b2348b673": {
                "Name": "compassionate_keller",
                "EndpointID": "ffa55232565d3a32d1e471d0753c1f491d6131a5cca50b8b76bc43a8ff554e32",
                "MacAddress": "02:42:ac:11:00:04",
                "IPv4Address": "172.17.0.4/16",
                "IPv6Address": ""
            }

위의 예에서 컨테이너의 IP 주소는 172.17.0.4/16입니다.

또한 네트워크에 연결된 여러 컨테이너를 가질 수 있으며 브리지 네트워크를 검사하여 두 컨테이너의 IP 주소를 쉽게 찾을 수 있습니다. 아래와 같이 Nginx 이미지 기반의 컨테이너를 브리지 네트워크에 추가합니다.

isaac@DESKTOP-HV44HT6:~$ docker run -dt nginx
4ab752ab92582a0eb2cb14475094460fc8cc608c93a357a8dca082cfea2bc368

이제 브리지 네트워크를 검사하면 두 컨테이너의 IP 주소를 얻을 수 있습니다. 두 개의 컨테이너가 실행 중이어야 함을 기억하십시오.

isaac@DESKTOP-HV44HT6:~$ docker network inspect bridge

출력:

"Containers": {
            "42487cad0390a8de6d1a88bc1d6c09ffdf3162dc85d4d5d3dc70200b2348b673": {
                "Name": "compassionate_keller",
                "EndpointID": "ffa55232565d3a32d1e471d0753c1f491d6131a5cca50b8b76bc43a8ff554e32",
                "MacAddress": "02:42:ac:11:00:04",
                "IPv4Address": "172.17.0.4/16",
                "IPv6Address": ""
            },
            "4ab752ab92582a0eb2cb14475094460fc8cc608c93a357a8dca082cfea2bc368": {
                "Name": "trusting_keller",
                "EndpointID": "a2babd11586f493cf5e57f5d9920a7f5648cf6163e77030521bef62fc9f34a63",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            }
        }

두 컨테이너의 IP 주소는 생성 순서대로 172.17.0.4/16172.17.0.2/16입니다.

docker inspect를 사용하여 Docker 컨테이너의 IP 주소 가져오기

docker inspect와 컨테이너 이름 또는 컨테이너 ID를 사용하여 특정 Docker 컨테이너의 IP 주소를 찾을 수도 있습니다. 이렇게 하면 JSON 형식의 다른 많은 세부 정보도 똑같이 반환됩니다.

$ docker inspect 42487cad0390

출력:

"Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "9729860fa5961eeac55f921ee787b2c82a15146cd36117b5394243be2149e929",
                    "EndpointID": "ffa55232565d3a32d1e471d0753c1f491d6131a5cca50b8b76bc43a8ff554e32",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.4",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:04",
                    "DriverOpts": null
                }
            }

이 경우에는 공식 Nginx 이미지를 기반으로 컨테이너를 검사했습니다. 네트워킹 Docker 컨테이너에 대한 재미있는 내용은 Docker 설명서를 참조할 수 있습니다.

작가: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

관련 문장 - Docker Container