[docker]笔记-网络管理

Docker使用虚拟网桥docker0实现容器间和外部网络的连接,容器通过veth接口与网桥通信。网络模式包括host、container、none和bridge,默认为bridge模式。容器间默认可互连,外部网络访问容器需通过端口映射。
摘要由CSDN通过智能技术生成

1、docker网络原理

docker安装完成后,会在宿主机中创建一个虚拟网桥,用于容器之间和容器与外部网络的连接。虚拟网桥通常名称为docker0.可以使用ip link show命令进行查看:

 在docker中,各个容器是通过这个docker0的虚拟网桥实现互连的,该虚拟网桥可以设置ip地址,相当于隐藏的虚拟网卡。

docker守护进程在一个容器中启动时,要建立一个连接,连接的一端在容器的网络设备,另一端是运行docker守护进程的主机上打开一个名为veth*的接口,用来实现docker0网桥和容器通信。使用brctl命令可以查看。

 

2、网络模式

docker使用linux的命名空间进行资源隔离,使用PID的命名空间隔离进程,Monut命名空间隔离文件系统,Network命名空间隔离网络。一个Network命名空间提供一个独立的网络环境(包括网卡、路由、iptable规则等与其它命名空间隔离)。docker支持四种网络模式,可以在创建时使用--network进行指定。

①host模式,启动容器选择该模式容器将不会获得独立的Network命名空间,而是和宿主机共用一个Network命名空间。

②container模式,新创建的容器和已存在的一个容器共享一个Network命名空间。

③none模式,docker容器拥有自己的Network命名空间,但不进行任何网络配置,需要手动添加网卡、配置IP。

④bridge模式(桥接模式),docker分配的默认模式,此模式会为每一个容器分配network命名空间、设置ip地址。

3、容器间互连

由于同一个主机中所有的容器都连接在同一个虚拟网桥上,因此默认情况下同一个主机中的容器之间可以互相连接。

4、容器与外部网络互连

①容器访问外部网络:容器通过网络桥接到docker0上,docker0与主机互通,默认情况下,容器内部可以访问外部网络。

②外部网络访问容器:正常情况,外部网络无法访问容器内部,如果需要从外部访问容器提供的网络服务,就需要通过端口映射。例如,将主机8080端口映射容器的80端口。

[root@localhost ~]# docker run -ltd -p 8080:80 httpd

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值