前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker的四种网络模式

docker的四种网络模式

作者头像
CBeann
发布2023-12-25 19:30:37
3380
发布2023-12-25 19:30:37
举报
文章被收录于专栏:CBeann的博客CBeann的博客

四类网络模式

网络模式

配置

说明

bridge模式

–net=bridge

(默认为该模式)

host模式

–net=host

容器和宿主机共享Network namespace。

container模式

–net=container:NAME_or_ID

容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。

none模式

–net=none

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

bridge模式

内网IP

下面给大家列出来,只要ip地址不属于这几个网段范畴的,都是公网ip。

100.X.X.X

10.X.X.X

192.168.X.X

172.16.X.X-172.31.X.X

bridge模式

当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。

如下图所示,当Docker1需要访问外网时,请求先到达Docker0虚拟网卡,然后在到达物理网卡,请求就发送出去了。

实操

1)首先有一个服务器,我的云服务器内网IP为:10.0.4.8

2)然后创建一个docke容器,容器为zookeeper(端口2181)

3)查看docker服务器的IP

代码语言:javascript
复制
docker inspect 容器ID

执行上面的命令,就可以查看容器的详细信息,从图中可以看出容器的网络模式为bridge,容器的IP为172.17.0.5(我起了其他的容器,所以不是172.17.0.2)

host模式

host模式

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

实操

1)首先有一个服务器,我的云服务器内网IP为:10.0.4.8

2)通过添加一下参数设置网络模式为host模式

代码语言:javascript
复制
--net=host

启动一个centos容器

代码语言:javascript
复制
docker run -itd --name centos01 --net=host centos:centos7

我们使用一下命令查看docker容器的详细信息,如下图所示,并没有发现IP信息

代码语言:javascript
复制
docker inspect 容器ID

我们可以进入容器内部去查看,其中764af3b723a0为容器ID

代码语言:javascript
复制
//进入容器
docker exec -it 764af3b723a0 /bin/bash
//安装网络工具
yum install net-tools -y
//查看IP
ifconfig

通过截图发现,host网络模式下的容器的IP和宿主机IP一致

container模式

container模式

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

Container模式示意图:

使用场景

k8s中一个Pod中共用一个网络,其实就Pod里先初始化一个Pause容器用来设置网络,其他的容器通过container模式关联到Pause容器上,这样一个Pod里的多个容器共用一个网络

参考:查看k8s中Pod里容器的数量和名称

none模式

使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。

参考

docker的四种网络模式是什么

查看Linux服务器公网&内网IP地址

操作系统怎么查看docker容器的ip

查看k8s中Pod里容器的数量和名称

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 四类网络模式
    • bridge模式
      • 内网IP
      • bridge模式
      • 实操
    • host模式
      • host模式
      • 实操
    • container模式
      • container模式
      • 使用场景
    • none模式
    • 参考
    相关产品与服务
    容器镜像服务
    容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档