容器之間的Link
上次介紹了默認的網路Bridge,連接到docker0之後還可以跟外界進行通信,查看docker之間的關係link。上節生成了test1和test2,test1和test2之前可以通過ip地址的房還是進行通信的。
場景
如果創建2個容器,一個mysql容器,一個tomcat容器,tomcat容器內後台應用,需要訪問mysql資料庫容器,按照上節的原理,我需要先進入mysql的容器中查看mysql的ip地址,然後在在tomcat容器的應用中修改程序裡面的資料庫連接地址才可以完成應用的連接。這樣是不是很麻煩。 其實還有一種link的方式可以讓應用通信變的簡單
啟動test1 和test2
停止test2,刪除test2
加入link創建test2
通過link test1 也就是直接把test1 告訴給test2的ip地址,直接可以通過test1的容器名字,直接找test1
反過來我在test1裡面直接ping test2咱們試試
上節課通過docker network ls 可以看到一個bridge host none
我們自己創建一個bridge,讓容器直接綁定新的bridge
之前都是172.17 這裡的是172.18
問題來了,一個17,一個18網段如何讓17網段的容器 可以連接在新的18網段上呢
我們在test3上嘗試ping下test2 看能否ping通
是不是有點神奇,按照常理我不通過link不可以通過名稱直接ping通test2,而這裡我們成功的ping通了test2,這是為什麼呢?我們test2和test3因為都連接了用戶自己創建的bridge上,這2個默認就是連接好的,可以直接通過名稱。咱們在試試通過test2來ping test3試試.
PS:用戶自定義的bridge 和 docker0 這個bridge他們之前的區別,docker0 如果通過名稱想找到需要通過link,實際的項目中很少使用link,其實讓大家知道link這個命令。


TAG:IT人講身邊的故事 |