Docker-10-网络类型

简介: Docker-10-网络类型

我们知道容器的优点是轻量化,轻量化的结果就是功能单一数量大,在多个容器的场景下,难免就需要解决容器之间相互通信的问题,今天我们就来一起看看 Docker 的网络类型。


Bridge 类型


Bridge 类型,也是 Docker 的默认类型,使用独立的一个 IP 段创建一个网桥 docker0,同时为每个容器分配一个这个 IP 段的 IP,实现基于网桥 A 的容器间通信。


网络异常,图片无法展示
|


以默认网络类型启动一个容器:


网络异常,图片无法展示
|


--network 是可选参数


架构图


网络异常,图片无法展示
|


Host 类型


Host 类型,也就是主机类型,与主机共享 Network NameSpace,网络资源和主机保持一致,一般用于单容器服务。


主机网络配置:(docker0enp0s3-15enp0s8-103lo)


网络异常,图片无法展示
|


容器网络配置:(docker0enp0s3-15enp0s8-103lo


网络异常,图片无法展示
|


即容器内的网络配置和 Host 完全一致。


Container 类型


Container 类型,顾名思义为容器网络类型,即两个容器共享命名空间,比如容器 AX 网络类型,网络配置为 Z,容器 B 使用了容器 Acontainer 网络类型,则 B 的网络配置也为 Z


网络异常,图片无法展示
|

网络异常,图片无法展示
|


如上,alpine_Aalpine_B 两个容器的网络配置完全一样,因为 alpine_B 使用的 alpine_A 的网络命名空间。


None 类型


None 类型,即没有任何网络配置。


网络异常,图片无法展示
|


容器中除了 lo 口无任何网络配置。


None 类型如何配置固定 IP 呢?


root@phyger-xubuntu:/home/phyger# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6829b4ce91aa        alpine              "sh"                9 seconds ago       Up 6 seconds                            alpine_B
e2e76f8df2a6        alpine              "sh"                15 minutes ago      Up 15 minutes                           alpine_none
#查询两个None模式容器的Pid
root@phyger-xubuntu:/home/phyger# docker inspect e2e7 | grep -w  Pid
            "Pid": 4162,
root@phyger-xubuntu:/home/phyger# docker inspect 6829 | grep -w  Pid
            "Pid": 4375,
#创建/var/run/netns 目录,并且增加虚拟网络命名空间2个
root@phyger-xubuntu:/home/phyger# mkdir -p /var/run/netns
root@phyger-xubuntu:/home/phyger# ln -s /proc/4162/ns/net /var/run/netns/4162
root@phyger-xubuntu:/home/phyger# ln -s /proc/4375/ns/net /var/run/netns/4375
#创建一对虚拟网卡,并且将其up
root@phyger-xubuntu:/home/phyger# ip link add name veth0 type veth peer name veth1
root@phyger-xubuntu:/home/phyger# ip link set up veth1
root@phyger-xubuntu:/home/phyger# ip link set up veth0
#将一个veth0挂在容器A的netns上,另一个veth1挂在容器B的netns上
root@phyger-xubuntu:/home/phyger# ip link set veth0 netns 4162
root@phyger-xubuntu:/home/phyger# ip link set veth1 netns 4375
#修改两个容器中的虚拟网卡的name并且配置固定IP
root@phyger-xubuntu:/home/phyger# ip netns exec 4162 ip link set veth0 name eth0
root@phyger-xubuntu:/home/phyger# ip netns exec 4375 ip link set veth1 name eth0
root@phyger-xubuntu:/home/phyger# ip netns exec 4375 ip addr add 1.0.0.11/32 dev eth0
root@phyger-xubuntu:/home/phyger# ip netns exec 4162 ip addr add 1.0.0.22/32 dev eth0
#将两个容器中的虚拟网卡UP起来
root@phyger-xubuntu:/home/phyger# ip netns exec 4162 ip link set eth0 up
root@phyger-xubuntu:/home/phyger# ip netns exec 4375 ip link set eth0 up
#在两个容器中分别添加对向路由
root@phyger-xubuntu:/home/phyger# ip netns exec 4162 ip route add 1.0.0.11/32 dev eth0
root@phyger-xubuntu:/home/phyger# ip netns exec 4375 ip route add 1.0.0.22/32 dev eth0
复制代码


查看结果:


网络异常,图片无法展示
|


到此,成功!

相关文章
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
2012 39
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
668 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
机器学习/深度学习 数据采集 算法
基于MobileNet深度学习网络的MQAM调制类型识别matlab仿真
本项目基于Matlab2022a实现MQAM调制类型识别,使用MobileNet深度学习网络。完整程序运行效果无水印,核心代码含详细中文注释和操作视频。MQAM调制在无线通信中至关重要,MobileNet以其轻量化、高效性适合资源受限环境。通过数据预处理、网络训练与优化,确保高识别准确率并降低计算复杂度,为频谱监测、信号解调等提供支持。
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
1566 8
|
安全 Docker 容器
docker的默认网络模式有哪些
Docker 默认网络模式包括:1) bridge:默认模式,各容器分配独立IP,可通过名称或IP通信;2) host:容器与宿主机共享网络命名空间,性能最优但有安全风险;3) none:容器隔离无网络配置,适用于仅需本地通信的场景。
782 6
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
1110 5
|
存储 安全 物联网
计算机网络的类型
本文介绍了网络的分类,涵盖按覆盖范围(PAN、LAN、MAN、WAN)、使用场景(公网、外网、内网)、传输介质(有线、无线)、特殊类型(VLAN、SAN、网络桥接、接入网)及拓扑结构(总线型、星型、树型、环型、网状型)和交换方式(电路交换、报文交换、分组交换)等,详细阐述了各类网络的特点和技术。
2753 2
|
负载均衡 应用服务中间件 数据安全/隐私保护
docker swarm 创建 Swarm 模式下的网络
【10月更文挑战第14天】
536 6

热门文章

最新文章