首页 > 其他分享 >Docker常用网路介绍

Docker常用网路介绍

时间:2024-09-03 17:54:21浏览次数:10  
标签:容器 常用 网络 模式 网卡 Docker docker 网路

说明

Docker网络模式 配置 说明
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模式 –net=bridge (默认为该模式)

1、Host模式

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

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

Host模式如下图所示:

https://cdn.nlark.com/yuque/0/2024/png/38851631/1712727964082-2dd138e3-7bf7-4f66-8c57-599bfe790e6d.png

2、container模式

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

Container模式示意图:

https://cdn.nlark.com/yuque/0/2024/png/38851631/1712727964157-d8bdc98e-7e59-4629-bee7-6e4792a8a6d8.png

Container网络模式

3、none模式

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

这种网络模式下容器只有lo回环网络,没有其他网卡。none模式可以在容器创建时通过--network=none来指定。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。

None模式示意图:

https://cdn.nlark.com/yuque/0/2024/png/38851631/1712727964174-075af1d9-949a-4e92-a88c-2105ffe1d5ea.png

None网络模式

4、bridge模式

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

从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网桥中。可以通过brctl show命令查看。

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

bridge模式如下图所示:

https://cdn.nlark.com/yuque/0/2024/png/38851631/1712727964148-eead1e87-0c16-4ccc-b5ec-5b71f126a0fd.png

5、网络配置

Docker网络的配置可以通过docker network命令进行管理。常用命令包括:

  • 创建网络:

docker network create --driver



  例如,创建一个桥接网络:

  ```Python
docker network create --driver bridge my_bridge_network
  • 列出网络:

docker network ls



- **查看网络详细信息**:

  ```Python
docker network inspect <network-name>
  • 连接容器到网络:

docker network connect



- **断开容器与网络的连接**:

  ```Python
docker network disconnect <network-name> <container-name>

标签:容器,常用,网络,模式,网卡,Docker,docker,网路
From: https://www.cnblogs.com/wuruixing/p/18395117

相关文章

  • 【Python插件入门】第10篇(完结篇):插件常用工具类分享
    【Python插件入门】第10篇(完结篇):插件常用工具类分享原创金蝶云·星空-BOS平台金蝶云·星空-基础架构金蝶云·星空-学习笔记金蝶云·星空-协同开发更多 CQ周玉立已关注149人赞赏了该文章 1.8万次浏览 未经作者许可,禁止转载编辑于2022年08月22日09:......
  • Docker内部组件介绍
    Docker的内部组件主要包括:DockerDaemon(dockerd):管理容器和镜像,处理DockerAPI请求。DockerClient(docker):与DockerDaemon交互的命令行工具。DockerImages:用于创建容器的不可变模板。DockerContainers:从镜像创建的运行实例。DockerRegistry:存储......
  • wireshark 过滤source和destination wireshark常用过滤 转载
    Wireshark常用过滤使用方法tcp.port==80&&(ip.dst==122.114.5.11||ip.src==122.114.5.11) 过滤源ip、目的ip。在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.101.8的包,ip.dst==192.168.101.8;查找源地址为ip.src==1.1.1.1 端口过滤。如过滤80......
  • PbootCMS 后台常用文件修改路径位置
    在PbootCMS中,后台常用文件通常保存在 apps\admin\view\default 目录中。以下是常用的几个文件及其路径,这些文件在使用过程中可能需要修改一些文字内容。以下是具体的文件路径和用途说明:1.登录页页面修改文件路径:plaintext apps\admin\view\default\index.html用途......
  • 四款主流 Docker 可视化工具,免费又好用 - 推荐使用朵云
    前言Docker提供了命令行工具来管理Docker的镜像和运行Docker的容器。我们也可以使用图形工具来管理Docker。目前,主流的Docker图形工具有DockerClouds、DockerUl、Portainer和Shipyard。DockerClouds朵云DockerClouds朵云是一款最简单的,单机环境中的管理Docke......
  • CentOS 7 docker 部署遇到内网通,外网不同 问题
     问题  [root@localhost~]#systemctlstatusnetwork●network.service-LSB:Bringup/downnetworkingLoaded:loaded(/etc/rc.d/init.d/network;bad;vendorpreset:disabled)Active:failed(Result:exit-code)sinceTue2024-09-0314:21:22CST;......
  • flask简单自学(docker形式)
    前言参考详细地址:https://juejin.cn/post/6970663530215407652,感谢作者,作者主页直达正文flask的dockerfile(python版本3.8.6)注意:在docker里面运行python需要指定host和port:app.run(host=‘0.0.0.0’,port=5000,debug=True)requirements.txt依赖项内容:Flaskgunicorn......
  • Pyspark中catalog的作用与常用方法
    文章目录Pysparkcatalog用法catalog介绍cache缓存表uncache清除缓存表cleanCache清理所有缓存表createExternalTable创建外部表currentDatabase返回当前默认库tableExists检查数据表是否存在,包含临时视图databaseExists检查数据库是否存在dropGlobalTempView删......
  • SpringBoot项目常用配置文件MybatisPlusConfig、RedisConfig、RedissonConfig、Swagge
    MybatisPlusConfig:@Configuration@MapperScan("com.yupi.usercenter.mapper")publicclassMybatisPlusConfig{@BeanpublicMybatisPlusInterceptormybatisPlusInterceptor(){MybatisPlusInterceptorinterceptor=newMybatisPlusInterc......
  • 安全:nftables常用命令之二
    一,nftables的动作list查看create创建add添加insert插入replace替换delete删除flush清空说明:create和add的区别:如果指定的内容已经存在,add不会返回错误,而create会返回错误add和insert的区别:add是在后面添加,insert是在前面插入。二,nftables的动......