docker 网络模式

docker 网络模式

Bridge 网桥模式

Bridge(默认模式)
概述每个容器连接到一个虚拟网桥,这个网桥在宿主机上创建,类似于一个虚拟交换机。容器之间可通网桥进行通行
工作原理1. 创建网桥:docker启动时会在宿主机上创建一个默认的桥接网络,通常命令为docker0
2. 容器连接:每个新启动的容器会自动连接到docker0,并分配一个虚拟网卡(veth)
3. IP分配:docker 使用内部的DHCP(Dynamic host configuration protocol 动态主机分配协议)服务从网桥的子网中分配ip地址给容器
4. 容器通信:连接到同一桥接网络的容器可以通过ip地址进行通信
优点1. 隔离性:每个容器都有自己的虚拟网卡和IP地址,提供了良好的隔离性
2. 灵活性:可以配置网络规则和端口映射(如 -p 5001:22),允许外部访问
缺点1. 性能开销:通过网桥进行通信会有一些性能开销,尤其在高负载场景下
使用场景适用于大多数常见的容器化应用场景,尤其是需要容器间通信和外部访问的情况
参数–network bridge 或者不传,此模式是默认模式

Host 模式

Host 模式
概述容器与宿主机共享网络,容器不会获得独立的IP地址,而是使用宿主机的IP地址
工作原理1. 共享网络栈:容器启动时不创建网卡和桥接网络,直接使用宿主机的网络栈
2. 容器中的服务直接监听宿主机的网络接口,可以使用宿主机的所有端口
优点1. 高性能:没有虚拟化网络层,网络性能较高,适用于延迟敏感的应用
2. 配置简单:不需要配置端口映射,容器中的服务直接使用宿主机的端口
缺点1. 隔离性差:容器与宿主机共享网络栈,隔离性差,可能会带来风险
2. 端口冲突:多个容器可能会争用一个端口,导致端口冲突
使用场景1. 高性能需求:适用于网络性要求较高的应用,如高频交易系统、实时数据处理等
2. 单实例应用:适用于单实例运行的应用,避免端口冲突
参数–network host

Container 模式

Container 模式
概述允许一个容器共享另一个容器的网络栈,即多个容器可以共享一个IP地址和网络端口
工作原理1. 指定目标容器:启动容器时指定 --network container:<目标容器>, 新容器将共享目标容器的网络栈
2. 共享网络资源:新容器和目标容器共享相同的网络接口和IP地址
优点1. 资源共享:多个容器可以共享网络资源,实现紧密协作
2. 简化管理:减少网络配置和端口映射的管理复杂度
缺点1. 隔离性差:多个容器共享网络栈,隔离性较差,可能影响安全性
2. 高复杂性:需要管理和协调多个共享网络的容器,增加管理复杂性
使用场景1. 多进程应用:适用于将多进程应用分拆成多个容器运行的场景,如一个容器运行主进程,另一个容器运行辅助进程
2. 紧密耦合:适用于需要紧密协作和共享网络资源的容器,如联合运行的应用和其依赖服务

查看docker网络列表

docker network ls

docker 有3个原生的网络
bridge、host、none
–network none: 指禁用网络接口,只有io接口

  • 自定义网络
# 默认是桥接模式bridge
docker network create mynet1
# 指定网段,不能和本机所有网段冲突
docker network create --subnet 172.10.0.0/24 --gateway 172.10.0.1 mynet2
# 不同的子网之间网络不通
docker run -d -name demo1 --network mynet1 nginx
docker run -d -name demo2 --network mynet2 nginx
docker run -it --network mynet2 nginx test2
# 不能ping通
ping demo1
# 能ping通
ping demo2
# 让不同子网通信
docker run -it -d -name demo3 --network mynet2 nginx
# 不能ping通
ping demo1
docker netwrok connect mynet1 demo3
# 能ping通
ping demo1

查看容器详情,可查看IP地址

docker inspect 命令用于获取 Docker 对象(容器、镜像、卷、网络等)的详细信息
–type: 返回指定类型的对象信息(可选类型:container、image、network、volume)

docker inspect <容器名>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值