iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Docker的网络模式介绍
  • 131
分享到

Docker的网络模式介绍

2024-04-02 19:04:59 131人浏览 独家记忆
摘要

这篇文章主要介绍“Docker的网络模式介绍”,在日常操作中,相信很多人在Docker的网络模式介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker的网络模式介绍”

这篇文章主要介绍“Docker网络模式介绍”,在日常操作中,相信很多人在Docker的网络模式介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker的网络模式介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1、Docker的四种网络模式

Docker的网络模式介绍

(1)docker四种网络模式如下:

  •  Bridge contauner   桥接式网络模式

  •  Host(open) container   开放式网络模式

  •  Container(join) container   联合挂载式网络模式,是host网络模式的延伸

  •  None(Close) container   封闭式网络模式

(2)可以通过docker network命令查看

[root@along ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
f23b4899add1        bridge              bridge              local
65520497f693        host                host                local
a0c5f18e0f04        none                null                local

(3)docker run --network 命令可以指定使用网络模式

2、Bridge 网络模式

2.1 介绍

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

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

[root@along ~]# brctl show
bridge name    bridge id        STP enabled    interfaces
docker0    8000.024241c45d6e    no

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

[root@along ~]# iptables -t nat -vnL
Chain POSTROUTING (policy ACCEPT 20 packets, 1238 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      !docker0  172.17.0.0/16        0.0.0.0/0
2.2 bridge模式示意图

Docker的网络模式介绍

2.3 演示

bridge 网络模式;--network不指定,默认也是bridge模式

[root@along ~]# docker run --name b1 -it --network bridge --rm busybox:latest 
/ # ifconfig 
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
          inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1016 (1016.0 B)  TX bytes:508 (508.0 B)
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
/ # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.17.0.1      0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0
/ # ping 10.11.55.5   正常访问宿主机
PING 10.11.55.5 (10.11.55.5): 56 data bytes
64 bytes from 10.11.55.5: seq=0 ttl=64 time=0.292 ms
/ # exit

3、Host 网络模式

3.1 介绍

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

3.2 Host模式示意图

Docker的网络模式介绍

3.3 演示
[root@along ~]# docker run --name b2 -it --network host --rm busybox:latest
/ # ifconfig -a   和宿主机一样
docker0   Link encap:Ethernet  HWaddr 02:42:41:C4:5D:6E  
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:41ff:fec4:5d6e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:90 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5903 (5.7 KiB)  TX bytes:2381 (2.3 KiB)
eth0      Link encap:Ethernet  HWaddr 00:0C:29:AB:D2:DA  
          inet addr:10.11.55.5  Bcast:10.11.55.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feab:d2da/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3913 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3327 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:354314 (346.0 KiB)  TX bytes:919096 (897.5 KiB)
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

4、Container 网络模式

4.1 介绍

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

4.2 Container模式示意图

Docker的网络模式介绍

4.3 演示

(1)在一个终端,使用bridge网络模式启动容器b1

[root@along ~]# docker run --name b1 -it --rm busybox:latest 
/ # ifconfig   b1的ip为172.17.0.2
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
          inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:508 (508.0 B)  TX bytes:508 (508.0 B)
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
/ # echo "hello world b1" > /tmp/index.html
/ # Httpd -h /tmp/  在b1上启动httpd服务
/ # netstat -nutl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       
tcp        0      0 :::80                   :::*                    LISTEN

(2)在另一个终端使用Container 网络模式创建容器b2

[root@along ~]# docker run --name b2 -it --network container:b1 --rm busybox:latest
/ # ifconfig -a   b2的ip和b1一样
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
          inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:648 (648.0 B)  TX bytes:648 (648.0 B)
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
/ # wget -O - -q 127.0.0.1   b1启动的httpd服务,在b2上直接访问
hello world b1
/ # ls /tmp/   但是文件系统并不共享,只共享网络

5、None 网络模式

5.1 介绍

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

  不参与网络通信,运行于此类容器中的进程仅能访问本地回环接口;仅适用于进程无须网络通信的场景中,例如:备份、进程诊断及各种离线任务等。

5.2 node模式示意图

Docker的网络模式介绍

5.3 演示
[root@along ~]# docker run --name b1 -it --network none --rm busybox:latest 
/ # ifconfig 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
/ # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
/ # exit

到此,关于“Docker的网络模式介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: Docker的网络模式介绍

本文链接: https://www.lsjlt.com/news/59945.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker的网络模式介绍
    这篇文章主要介绍“Docker的网络模式介绍”,在日常操作中,相信很多人在Docker的网络模式介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker的网络模式介绍”...
    99+
    2024-04-02
  • Docker自定义网络详细介绍
    目录Docker自定义网络一.自定义网络介绍二.创建自定义网络Docker自定义网络 一.自定义网络介绍 1.介绍 常规docker容器启动,可以用–link,进行容器网络绑定,但是...
    99+
    2024-04-02
  • Docker网络模型使用详解(2)Docker网络模式
    安装Docker时会自动创建3个网络,可以使用docker network ls命令列出这些网络。 [root@localhost ~]# docker network ls NETWORK ID     NAME          ...
    99+
    2023-09-08
    docker 容器 linux 运维
  • Docker的四种网络模式
    Docker 的四种网络模式 Docker 有 bridge、none、host、container 四种网络模式,提供网络隔离、端口映射、容器间互通网络等各种支持,下面开门见山地直...
    99+
    2024-04-02
  • Python中的socket网络模块介绍
    目录Socket服务端(server.py)客户端(client.py)socket中的一些常用方法Socket 对象(内建)方法Python Internet 模块前言: Pyth...
    99+
    2024-04-02
  • Docker网络模式详解
    目录 Docker网络模式 一、Host模式 二、container模式 三、none模式 四、bridge模式 五、Overlay模式 Docker网络模式         安装Docker时会自动创建3个网络,可以使用docker ...
    99+
    2023-10-19
    docker 容器 运维 学习 网络
  • docker网络配置过程详解介绍
    目录Linux内核实现名称空间的创建操作Network Namespace创建veth pair实现Network Namespace间通信四种网络模式配置容器的常用操作自定义doc...
    99+
    2024-04-02
  • Docker中的四种网络模式
    目录实现原理四类网络模式host模式container模式none模式bridge模式实现原理 Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0)...
    99+
    2023-05-17
    Docker四种网络模式 Docker网络模式
  • docker的网络模式有哪些
    Docker的网络模式有以下几种: bridge(默认):Docker在主机上创建一个虚拟的网络桥接接口,容器加入到这个网络中后可...
    99+
    2023-10-30
    docker
  • Docker 网络模式及配置方式
    一、Docker网络模式 docker run 创建 Docker 容器时,可以用 –net 选项指定容器的网络模式,Docker 有以下 4 种网络模式: host 模式,使用 –...
    99+
    2024-04-02
  • docker容器网络模式详解
    目录bridge - 桥接模式host - 站点模式container - 容器模式none模式overlay 模式bridge - 桥接模式 上期有提到我们可以使用docker c...
    99+
    2022-11-13
    docker 容器网络模式 docker 网络模式
  • Docker的四种网络模式是什么
    这篇文章主要介绍“Docker的四种网络模式是什么”,在日常操作中,相信很多人在Docker的四种网络模式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker的四种网络模式是什么”的疑惑有所帮助!...
    99+
    2023-06-29
  • Docker网络模式及配置方式的示例
    这篇文章将为大家详细讲解有关Docker网络模式及配置方式的示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Docker网络模式docker run 创建 Docker 容器时,可以用 –net 选...
    99+
    2023-06-14
  • windows10重置网络设置方式介绍
    很多新手客户不知道在windows10电脑中怎样进行重置网络设置,这时候客户能够点击电脑的网络图标,随后点击网络和lnternet选项,接着在通知栏找到网络重置选项哦,点击马上重设就可以啦,要是没有找到网络图标,就可以直接在输入框内搜索网络...
    99+
    2023-07-13
  • MySQL的SQL模式介绍
    这篇文章主要讲解了“MySQL的SQL模式介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL的SQL模式介绍”吧! M...
    99+
    2024-04-02
  • Docker四种网络模式是什么
    这篇文章主要介绍“Docker四种网络模式是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Docker四种网络模式是什么”文章能帮助大家解决问题。1.安装doc...
    99+
    2024-04-02
  • pytorch网络模型构建场景的问题介绍
    目录1. 网络模型构建中的问题1.1 输入变量是Tensor张量1.2 __init__()方法使用1.3 内置函数setattr()1.4 网络模型的构建记录使用pytorch构建...
    99+
    2023-03-10
    pytorch网络模型构建 pytorch网络模型
  • 深入解析docker三种网络模式
    目录1.docker默认的三种网络模式:2.桥接模式3.host模式4.none模式1.docker默认的三种网络模式: bridge:桥接模式 host:主机模式 none:无网络...
    99+
    2024-04-02
  • docker如何查看container-none网络模式
    小编给大家分享一下docker如何查看container-none网络模式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!cont...
    99+
    2024-04-02
  • 网络爬虫的原理介绍
    这篇文章主要介绍“网络爬虫的原理介绍”,在日常操作中,相信很多人在网络爬虫的原理介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”网络爬虫的原理介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!认识浏览器...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作