2017-08-11 77 views
1

我有情侶裝的運行泊塢窗多個ip地址

[email protected]:~$ sudo docker ps 
CONTAINER ID  IMAGE       COMMAND     CREATED    STATUS    PORTS    NAMES 
3401574617ea  j/ros-tutorials:latest "/tini -- /ros_ent..." About an hour ago Up About an hour      rosdemo_master.1.yled0m2ygtoha1gs09mrvwho5 
dd1a5a4ed5b2  j/ros-tutorials:latest "/tini -- /ros_ent..." About an hour ago Up About an hour      rosdemo_listener.1.fjv2u7yxihxvzkfzmomhnq9 

但是當我嘗試使用下面的腳本來得到他們的ip地址 -

for i in $(sudo docker ps -q); do sudo docker inspect $i| grep IPA; done 

我得到下面的輸出 -

 "SecondaryIPAddresses": null, 
     "IPAddress": "", 
       "IPAMConfig": { 
       "IPAddress": "10.255.0.5", 
       "IPAMConfig": { 
       "IPAddress": "10.2.0.7", 
     "SecondaryIPAddresses": null, 
     "IPAddress": "", 
       "IPAMConfig": { 
       "IPAddress": "10.2.0.9", 

想知道爲什麼我會得到3個ipaddresses -

10.255.0.5 
10.2.0.7 
10.2.0.9 
+0

你是如何啓動這些碼頭集裝箱的?一個接一個還是寫作? – VladoDemcak

+0

我在使用碼頭羣 – user1050619

回答

0

容器被連接到多個Docker網絡。

不要使用grep來提取IP地址,這是所有結構化數據,Docker支持開箱即用模板格式。

讓主IP地址:

docker inspect $CID \ 
    -f '{{ .NetworkSettings.IPAddress }}' 

將獲得分配給網絡中的任何IP地址:

docker inspect $CID \ 
    -f '{{ range .NetworkSettings.Networks }}{{ .IPAddress }}{{ end }}' 

要與IP一起印製的網絡名稱:

docker inspect $CID \ 
    -f '{{ range $k,$v :=.NetworkSettings.Networks }}{{$k}} {{.IPAddress}}{{ end }}'