Docker网络模式

本文介绍了Docker的网络模式,包括Host模式、Container模式、None模式和Bridge模式,并详细讲解了Bridge模式的工作原理。此外,还讨论了Docker网络自定义,如查看网络列表、自定义网络固定IP和暴露端口等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Docker 网络​

Docker 网络图解​

Docker 四种网络模式

Host 模式

Container模式

None模式

Bridge模式

Docker 网络自定义

查看网络列表

自定义网络固定IP

 暴露端口

在宿主机环境执行容器内命令

 systemctl 命令

Docker 镜像分层

Dockerfile 操作指令

例:docker部署nginx


Docker 网络

lo0:回环网卡、TCP/IP网卡是否生效

virbr0 自身继承了一个虚拟化功能(KVM 架构),原生架构的一个虚拟化平台,安装了一个虚拟化平台之后就会自动安装虚拟网卡

docker 0 : 容器的网关,绑定物理网卡,负责做NAT 地址转换、端口映射,本身也是一个容器

ens33: 实体物理网卡

Docker 网络图解在这里插入图片描述

 

Docker 四种网络模式

Host 模式

host模式 : -net=host 容器和宿主机共享Network namespace

host容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的NetworkNamespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。

使用host模式的容器可以直接使用宿主机的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT, host最大的优势就是网络性能比较好,但是dockerhost上已经使用的端口就不能再用了,网络的隔离性不好。

Container模式

container模式:-nat=containner:name or ID 容器和另外一个容器共享network namespace

这个模式指定新创建的容器和已经存在的一个容器共享一个network namespace,而不是和宿主机共享,新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定地容器共享Ip、端口范围等,同样,两个容器除了网络方面,其他的如文件系统、选程列表还是隔高的. (两个容器的进程可以通过lo0网卡设备通信)
 

None模式

none模式: -net=none 容器有独立的Network namespace ,但并没有对其进行任何网络设置,如分配veth -pair 和网桥连接,配置IP 等

这种网络模式下客器只有lo回环网口,役有其他的网卡, none模式可以在容器创建时通过-netwokr=none 参数指定
这种类型的网络无法联网,但是封闭的网络能很好的保证容器的安全性

Bridge模式是docker的默认网络模式,不写-net参数,就是bridge模式。使用docker run-p时, docker实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables t nat-vn查看。

Bridge模式

Bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker虚拟网桥,通过docker0网桥及iptables.的net表配置与宿主机通信

当Docker进程启动时,会在主机上创建一个

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值