前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速学习Docker-容器的网络基础

快速学习Docker-容器的网络基础

作者头像
cwl_java
发布2019-11-04 11:39:35
4130
发布2019-11-04 11:39:35
举报
文章被收录于专栏:cwl_Javacwl_Java

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/102871667

docker的网络模式:

docker有四种网络模式

  • bridge模式
  • host模式
  • container模式
  • none模式。

在运行容器时,添加以下参数.即可选择一种网络模式运行容器。

代码语言:javascript
复制
--net bridge | host | container | none    
bridge模式

当docker进程启动时,会在主机上创建一个名为docker0的虚拟网卡,此主机上启动的Docker容器会连接到这个虚拟网卡上,从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,docker将veth pair设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网卡中。该模式是docker默认的网络模式。

  • bridge模式如下图所示:
在这里插入图片描述
在这里插入图片描述
  • bridge模式容器的网络端口映射:容器中的环境与宿主机隔离,那么此时容器内与外部进行网络通信就会有些问题,外部不能直接访问容器内的IP地址和端口。 docker 为我们提供了宿主机的端口与容器内的端口映射来解决此问题,方式有两种,一种是随机映射,一种是指定映射。
  • 在运行容器时,添加以下参数:
    • 随机映射
      • -P 会将容器中暴露的端口随机映射到宿主机的某一个端口上
代码语言:javascript
复制
演示:docker run --name tomcat1 -d --rm  -P tomcat     
  • 指定映射:
    • -p hostPort:containerPort
    • -p ip:hostPort:containerPort
    • -p ip::containerPort
    • -p 参数可以指定多次, 如: -p 91:80 -p 92:443…
代码语言:javascript
复制
演示:docker run --name tomcat2 -d --rm  -p 8080:8080 tomcat
host模式:

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

  • host模式如下图所示
在这里插入图片描述
在这里插入图片描述
container模式:

这个模式指定新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。

  • container模式如下图所示
在这里插入图片描述
在这里插入图片描述
none模式:

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

  • none模式如下图所示
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • docker的网络模式:
  • bridge模式
  • host模式:
  • container模式:
  • none模式:
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档