什么是 bridge网络
1 |
docker的桥接网络使用虚拟网桥,bridge网络用于同一主机上的docker容器相互通信,连接到同一个网桥的docker容器可以相互通信,当我们启动docke时,会自动创建一个默认bridge网络,除非我们进行另外的配置,新创建的容器都会自动连接到这个网络,我们也可以自定义自己的bridge网络,docker文档建议使用自定义bridge网络,默认的bridge网络具有一定的缺陷。 |
1 2 3 4 5 6 7 |
overlay网络用于连接不同机器上的docker容器,允许不同机器上的容器相互通信,同时支持对消息进行加密,当我们初始化一个swarm或是加入到一个swarm中时,在docker主机上会出现两种网络: 1、称为ingress的overlay网络,用于传递集群服务的控制或是数据消息,若在创建swarm服务时没有指定连接用户自定义的overlay网络,将会加入到默认的ingress网络 2、名为docker_gwbridge桥接网络会连接swarm中所有独立的docker系统进程 可以使用docker network create创建自定义的overlay网络,容器以及服务可以加入多个网络,只有同一网络中的容器可以相互交换信息,可以将单一容器或是swarm服务连接到overlay网络中,但是两者在overlay网络中的行为会有所不同,接下来会描述两者在overlay网络中的共同行为以及不同行为 |
可以使用docker network create创建自定义的overlay网络,容器以及服务可以加入多个网络,只有同一网络中的容器可以相互交换信息,可以将单一容器或是swarm服务连接到overlay网络中,但是两者在overlay网络中的行为会有所不同,接下来会描述两者在overlay网络中的共同行为以及不同行为
前面lnmp环境安装使用的是 –link 来连接容器
1. 现在使用另外一种方式替代–link来达到容器间的通信:docker network
查看local的网络信息:
my_net 是我刚才用命令创建bridge网络:(默认创建的就是bridge)
新建一个bridge网络 :
1 |
docker network create my_test |
利用–network启动容器提供服务:
#通过选项–network-alias将取名的my_net起了一个别名
1 2 3 4 |
docker run -d -p 3306:3306 -it --name mysql -v /data:/var/lib/mysql --network my_net --network-alias mysql -e MYSQL_ROOT_PASSWORD=123456 --restart=always mysql:5.7 docker run -d -p 6379:6379 --name redis --network my_net --network-alias redis --restart=always redis docker run -d -p 9000:9000 --name php -v /wwwroot:/var/www --network my_net --network-alias php --restart=always php:7.1-fpm docker run -d -p 80:80 --name nginx -v /wwwroot:/var/www --network my_net --network-alias nginx --restart=always nginx |
访问phpinfo 同样可以访问到
- 本文固定链接: https://www.yoyoask.com/?p=197
- 转载请注明: shooter 于 SHOOTER 发表