본문 바로가기

Docker

[Docker] Container IP 확인하기

Container의 IP 확인하는 방법을 정리한 글입니다.

아래 명령어가 나온 배경을 확인합니다.

docker inspect -f "{{ .NetworkSettings.IPAddress }}" CONTAINER_ID

 

 




Container의 IP를 확인할 수 있는 방법은 2가지 입니다.

1. Docker Inspect 명령어

% docker inpect CONTAINER_ID

#출력 형태 - Json format
[
{
        "Id": "1eaabeb9b6746a9e2d7c241a375fc15c9cf40911e0809a99d6616681c23cd05c",
        "Created": "2024-05-13T12:48:47.314821715Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 2722,
            "ExitCode": 0,
...

 

위 Json의 NetworkSettings 하위 IPAdress의 정보를 확인하면 됩니다.

Container가 실행 중인 상태에서 확인할 수 있습니다.

...
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "295120b7a2ee6a229d38fc9f76dfd39e8f843815e40e5c21a750d8f0bac6464b",
            "HairpinMode": false,
           "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "7000/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/295120b7a2ee",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "b10191a98dea0ac2459dd35a97221d77f7fad258fc9e25298a802ca9ca2346ea",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
...

 

이제 IP 주소를 추출하는 명령어의 배경을 알았습니다.

해당 포맷에서 IP정보만 추출하기 위해선 맨 처음에 궁금했었던 아래의 코드를 작성합니다.

% docker inspect -f "{{ .NetworkSettings.IPAddress }}" CONTAINER_ID
172.17.0.2

 

 

2. Docker에서 확인하기

# exec 명령어
% docker exec CONTAINER_ID ip addr show eth0 

5: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

# container 내부의 bash
% docker exec -it CONTAINER_ID /bin/bash
root@CONTAINER_ID:/# ip addr show eth0
5: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

 

 

 

 


Ref.

01. [Blog] https://bluese05.tistory.com/36