如何取得docker container中的ip address與網路界面
How to discover the IP address and interface for a docker container
這篇主要講述如何取得docker container的IP位置與網路界面資訊。當你的docker container中並沒有安裝IP相關的工具程式,無法透過docker exec的方式執行ip相關的工具程式來取得IP位置與網路界面資訊,並且該網路界面的IP設定與docker DHCP預設配發的不一樣的時候,你可以這樣做。
Step 1 取得network namespace file
# docker inspect abay-test -f "{{.NetworkSettings.SandboxKey}}"
假設我們要取得的docker container的名稱為abay-test,執行這行指令後會得到/var/run/docker/netns/6f6c87265050 Step 2. 建立network namespace連結
# ln -s /var/run/docker/netns/6f6c87265050 /var/run/netns/6f6c87265050
這個檔案會在下次重新開機的時候就會不見
Setp 3. 在指定namespace下執行ip a
# ip netns exec 6f6c87265050 ip a
abay@vm-01:~$ sudo ip netns exec 6f6c87265050 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
87: eth0@if88: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:11:11:00:00 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet 172.17.0.5/16 scope global secondary eth0
valid_lft forever preferred_lft forever
留言
張貼留言