原则
容器间最好不要使用ip,使用容器的名字访问,一旦重启,IP可能换
容器启动MySQL角色
[root@rabbitmq1 ~]# docker run --name mydb centos
运行完就结束,但容器存在
[root@rabbitmq1 ~]# docker run -d --name mydb centos sleep 1d
运行24小时后结束
[root@rabbitmq1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0ff0737eb847 centos "sleep 1d" 6 seconds ago Up 6 seconds mydb
容器启动MyWEB角色
[root@rabbitmq1 ~]# docker run -d --name myweb --link mydb centos sleep 1d
f7d35d2a8f6cf77f03de04c11a21fee418e54807060ecfcd251abad94bb5b965
[root@rabbitmq1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7d35d2a8f6c centos "sleep 1d" 9 seconds ago Up 9 seconds myweb
0ff0737eb847 centos "sleep 1d" About a minute ago Up About a minute mydb
进入WEB容器内部,ping通DB容器
[root@rabbitmq1 ~]# docker exec -it f7d35d2a8f6c /bin/bash
[root@f7d35d2a8f6c /]# ping mydb
PING mydb (172.17.0.6) 56(84) bytes of data.
64 bytes from mydb (172.17.0.6): icmp_seq=1 ttl=64 time=0.098 ms
64 bytes from mydb (172.17.0.6): icmp_seq=2 ttl=64 time=0.035 ms
此时只有myweb能ping通mydb,而mydb无法ping通myweb
本文详细介绍了在Docker环境下如何通过容器名进行通信而非依赖IP地址,演示了启动MySQL和Web容器并实现两者间的ping通操作,强调了使用容器名访问的重要性。
703

被折叠的 条评论
为什么被折叠?



