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