docker网络
更新时间:2023-12-13阅读整篇大约2分钟
原理
- 在Docker中,我们只要安装了docker,就会有一个网卡docker0,每启动一个docker容器,docker就会给docker容器分配一个ip,
- 连接采用桥接模式,使用的技术是veth-pair技术!
- 所有的网络接口都是虚拟的,虚拟的转发效率高
- 只要容器删除,对应网桥(一对)就没了
--link(不建议使用)
容器互联,使用link,docker会自动在共享两个容器的变量。访问数据库的时候,不再是通过IP的方式来访问,而是通过容器名来访问,但是不能反向访问
sh
docker run --name my_docker_2 --link my_docker_1 imageName
网络模式
sh
docker network ls
- bridge:桥接 docker(默认,自己床架也使用bridge模式)
- none:不配置网络
- host:和宿主机共享网络
- container:容器网络连通!(用的少!局限很大)
自定义网络
自定义网络不使用
--link
也可以ping名字
sh
docker network create
# options:
--dirver # 所采用的网络模式
--subnet # 子网 eg:192.168.0.0/16 192.168.0.2 ~ 192.168.255.254
--gateway # 网关 eg:192.168.0.1
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.1688.0.1 mynet
查看网络
sh
docker network inspect mynet
不同网络的容器进行通信
原理是将容器放入另一个网络下,一个容器两个IP
原网络依旧存在该容器
sh
docker network connect [options] netWorkName containerId