天天看点

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、为什么容器能解析容器名