天天看點

docker容器間互訪:--link1、--link 介紹2、執行個體 3、為什麼容器能解析容器名 

目錄

1、--link 介紹

2、執行個體 

3、為什麼容器能解析容器名 

1、--link 介紹

docker容器間互聯的方法:--link(單方向的互聯),先啟動的容器隻能用IP位址連接配接後啟動的容器,後啟動的容器可通過IP位址、容器名、别名進行連接配接。

docker run -d --name http 2199b8eb8390 tail -F /qq/qq

docker run -d --name 02 --link http:web01 2199b8eb8390 tail -F /qq/qq

http 要通路的那個容器的名字

web01 給http容器起的别名

      容器02要通路容器http,因為http容器沒有做端口映射,是以在外部是通路不了http容器,但在容器内部也就是容器間是可以互相通路的。

       這個--link參數是單向的,隻能容器02通路容器http,容器http不能通路容器02。

2、執行個體 

(1)啟動一個http容器

docker run -d --name http 2199b8eb8390 tail -F /qq/qq

(2)再啟動一個容器,通路http容器

docker run -d --name 02 --link http:web01 2199b8eb8390 tail -F /qq/qq

(3)檢視容器http内Apache服務是否起來

docker top httpd

(4)檢視http容器的IP位址

docker inspect httpd

(5)進入測試容器02,進行curl(IP位址或容器名或别名)測試

  • docker exec -it 02 /bin/bash
  • curl -I 172.17.0.2
  • curl -I httpd
  • curl -I web01
docker容器間互訪:--link1、--link 介紹2、執行個體 3、為什麼容器能解析容器名 
docker容器間互訪:--link1、--link 介紹2、執行個體 3、為什麼容器能解析容器名 
docker容器間互訪:--link1、--link 介紹2、執行個體 3、為什麼容器能解析容器名 

(6)測試完成

3、為什麼容器能解析容器名 

當容器建立并啟動後,會自動的在hosts檔案裡添加解析,對于容器來說,它自己知道自己的IP位址,在沒有添加--link的時候是沒有172.17.0.2的解析的,當添加--link的時候,這條會自動添加。
[[email protected] /]# cat /etc/hosts
docker容器間互訪:--link1、--link 介紹2、執行個體 3、為什麼容器能解析容器名 
docker容器間互訪:--link1、--link 介紹2、執行個體 3、為什麼容器能解析容器名 

繼續閱讀