5.docker 容器互联
容器互联
如果你之前有Docker使用经验,你可能已经习惯了使用 --link 参数来使容器互联。
随着Docker网络的完善,强烈建议大家讲容器加入自定义的Docker网络来连接多个容器。
1.新建网络
docker network create -d bridge my-net
-d 参数指定Docker网络类型,有bridge overlay。其中overlay网络类型用户Swarm mode。
2.连接容器
这里创建四个容器,并全部连接到新的网络。
(1)创建两个tomcat容器
docker run -v /home/eva/src1:/usr/local/tomcat/webapps --name tomcat1 -d --network my-net -p 18080:8080 pic:latest
docker run -v /home/eva/src2:/usr/local/tomcat/webapps --name tomcat2 -d --network my-net -p 28080:8080 pic:latest
(2)创建mysql容器
docker run --name mysql -p 3306:3306 -v /home/eva/mysql/data:/var/lib/mysql -v /home/eva/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d --network my-net mysql:5.7
(3)创建redis容器
docker run --name redis -d -p 6379:6379 -v /home/eva/redis/data:/data --network my-net redis:latest
3.进入容器,测试是否连通
root@ubuntuserver:/usr/local/nginx/sbin# docker exec -it 805 /bin/bash
root@805c9aedb91b:/usr/local/tomcat# ping mysql
PING mysql (172.19.0.4): 56 data bytes
64 bytes from 172.19.0.4: icmp_seq=0 ttl=64 time=0.423 ms
64 bytes from 172.19.0.4: icmp_seq=1 ttl=64 time=0.126 ms
64 bytes from 172.19.0.4: icmp_seq=2 ttl=64 time=0.116 ms
root@805c9aedb91b:/usr/local/tomcat# ping redis
PING redis (172.19.0.5): 56 data bytes
64 bytes from 172.19.0.5: icmp_seq=0 ttl=64 time=0.126 ms
64 bytes from 172.19.0.5: icmp_seq=1 ttl=64 time=0.148 ms
64 bytes from 172.19.0.5: icmp_seq=2 ttl=64 time=0.123 ms