docker自定义网络
参考资料:B站狂神教程
查看所有docker网络
docker network ls
bridge:桥接docker(默认,自己创建容器时也是bridge模式)
none:不配置网络,一般不用
host::所有主机共享网络
桥接模式
原理:我们每启动一个docker容器,docker就会给docker容器分配一个ip,我们只要按照了docker, 就会有一个docker0桥接模式,使用的技术是veth-pair技术!
1.桥接模式的容器,通过ip可以ping通,但容器重启后,自动分配ip,ip会变,对项目来说,是不适用的。
2.基于以上,很多人会想到使用名称来访问容器服务,但是桥接模式下,容器名称之间是ping不通的。这时,我们可以用–link(–link 本质就是在hosts配置中添加映射)将连接打通,但是很麻烦。
3.我们可以自定义网络
桥接模式网络走向如下图示:
自定义网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
查看自定义网络:
docker network inspect mynet;
创建容器时,添加 --net mynet,下图可看到,已将nginx和mysql加入了mynet自定义网络,这时,容器之间无论是通过ip还是名称都是可以ping通的
网络连通
场景:容器a 要脸上自定义网络下mynet的容器b
命令:
docker network connect a mynet
假设要跨网络操作别人,就需要使用docker network connect 连通!