如何取得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

留言

這個網誌中的熱門文章

如何關閉nouveau-kernel-driver,解決無法安裝Nvidia driver問題

如何在Nginx所設置的Proxy中可以取得真實客戶的IP位址

如何客製VMware ESXi安裝光碟(加入Realtek驅動程式)