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

这样多个容器就建立了互联关系。在使用的时候使用容器名就可以了。

原文地址:https://www.cnblogs.com/snakejia/p/8422150.html