Docker系列九:Docker网络模式详解及容器间通信

article/2025/5/19 7:56:20

目录

一:前言

二:Docker的网络模式

2.1:bridge 网络模式(桥接模式)

2.2:host 网络模式

2.3:none网络模式

2.4:Container 网络模式

三:Docker自定义网络(推荐)

为容器扩容其他网络

断开容器网络

移除网络


一:前言

当项目大规模使用 Docker 时,容器通信的问题也就产生了。要解决容器通信问题,必须先了解很多关于网络的知识。

二:Docker的网络模式

安装 Docker 以后,会默认创建三种网络"bridge", "host", "null", 通过 docker network ls 查看

[root@vm03 ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
0f05bed2f9ee   bridge    bridge    local
ca3153ca103e   host      host      local
8707db62b9fc   none      null      local

网络模式

简介

bridge

为每一个容器分配、设置 IP 等,并将容器连接到一个 docker0 虚拟网桥,默认为该模式。

host

容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口。

none

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

container

新创建的容器不会创建自己的网卡和配置自己的 IP,而是和一个指定的容器共享IP、端口范围等。

2.1:bridge 网络模式(桥接模式)

        重点:在该模式中,Docker 守护进程创建了一个虚拟以太网桥 docker0

        默认情况下,守护进程会创建一对对等虚拟设备接口 veth pair ,将其中一个接口设置为容器的eth0 接口(容器的网卡),另一个接口放置在宿主机的命名空间中,以类似 vethxxx 这样的名字命名,从而将宿主机上的所有容器都连接到这个内部网络上。

举例说明容器与宿主机的网络如何通信:

1:查看宿主机ip信息,发现已经默认创建docker0 内网ip 172.17.0.1

 2: 运行一个容器查看内部ip信息, 会发现容器内部会创建14: eth0@if15的网卡,内网ip 172.17.0.3

 3查看宿主机网卡信息变化:发现docker创建一对对等虚拟接口15: vethd8bd694@if14

 容器内部是14: eth0@if15 宿主机是15: xxx@if14 两个是对等的,而且容器内与docker0在一个虚拟网段

2.2:host 网络模式

概述:

        1:host 网络模式需要在创建容器时通过参数 --net host 或者 --network host 指定;

        2:采用 host 网络模式的 Docker Container,可以直接使用宿主机的 IP 地址与外界进行通信,若宿主机的 eth0 是一个公有 IP,那么容器也拥有这个公有 IP。同时容器内服务的端口也可以使用宿主机的端口,无需额外进行 NAT 转换;

        3:host 网络模式可以让容器共享宿主机网络栈,这样的好处是外部主机与容器直接通信,但是容器的网络缺少隔离性。

 举例理解:host网络模式

1:通过制定host模式运行容器

docker run -itd --name centos7_02 --network host centos:7

2:进入容器查看网卡信息可以发现,host模式启动的容器会保留宿主机的网卡这里是192.168.8.210,docker0网卡也存在,这也说明与其它容器在一个内网上

 我们可以通过 docker network inspect host 查看所有 host 网络模式下的容器,在 Containers 节点中可以看到容器名称。

2.3:none网络模式

概述:

        none 网络模式是指禁用网络功能,只有 lo 接口 local 的简写,代表 127.0.0.1,即 localhost 本地环回接口。在创建容器时通过参数 --net none 或者 --network none 指定;

        none 网络模式即不为 Docker Container 创建任何的网络环境,容器内部就只能使用 loopback网络设备,不会再有其他的网络资源。可以说 none 模式为 Docke Container 做了极少的网络设定,但是俗话说得好“少即是多”,在没有网络配置的情况下,作为 Docker 开发者,才能在这基础做其他无限多可能的网络定制开发。这也恰巧体现了 Docker 设计理念的开放。

2.4:Container 网络模式

Container 网络模式是 Docker 中一种较为特别的网络的模式。在创建容器时通过参数 --net

container:已运行的容器名称|ID 或者 --network container:已运行的容器名称|ID 指定;

处于这个模式下的 Docker 容器会共享一个网络栈,这样两个容器之间可以使用 localhost 高效快

速通信。

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

举例说明:

使用容器centos7_02网络创建一个新容器centos7_05

docker run -itd --name centos7_05 --network container:centos7_02 centos:7

1:查看新容器centos7_02网卡信息

 2:查看容器centos7_05网卡信息

 可以发现新建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等

三:Docker自定义网络(推荐)

容器间网络通信必须要有属于同一个网络的网卡。在同一个自定义网络下

虽然 Docker 提供的默认网络使用比较简单,但是为了保证各容器中应用的安全性,在实际开发中更推荐使用自定义的网络进行容器管理

创建一个基于 bridge 网络模式的自定义网络模式 new_network

docker network create new_network

 通过自定义网络模式 new_network创建容器

docker run -itd --name centos7_07 --network new_network centos:7

查看新建容器网络

docker container inspect centos7_07

为容器扩容其他网络

docker network connect bridge centos7_07

断开容器网络

docker network disconnect bridge centos7_07

移除网络

docker network rm new_network
注意:如果通过某个自定义网络模式创建了容器,则该网络模式无法删除。


http://chatgpt.dhexx.cn/article/PjlIqdM9.shtml

相关文章

Docker(十四):Docker:网络模式详解

Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面。 Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创建三个网络,bridge(创…

docker网络模式 与 搭建nginx

目录 1. docker网络模式 2. 连接容器的三种方法 3. Docker Networking 3.1 创建网络 3.2 查看宿主机中创建的网络 3.3 删除网络 3.3 如何使用网络 4.搭建Nginx 1.准备工作 1.1 拉取镜像 1.2 在宿主机中创建挂载目录 2.准备2个tomcat 容器集群 3.准备 Nginx配置 3.…

Docker网络之网络模式简介

文章目录 默认创建的网络模式网络模式bridge模式查看详细信息 host模式none 模式container模式 默认创建的网络模式 启动docker后,我们使用一下命令查看网络模式 docker network ls我们发现了他默认创建了三种网络模式bridge、host、none,除此之外还有…

关于docker那点事儿——docker网络模式

docker网络模式 前言一、容器网卡、网桥docker0、veth关系二、docker的4种网络模式bridge模式host模式container模式none模式 前言 可以说每一次技术的革新都离不开最底层、最复杂也是最核心的两个东西,那就是网络和存储。不管是虚拟化还是容器化都与这两点密不可分…

【docker】网络模式

一、Docker网络实现原理 docker使用linux桥接,在宿主机虚拟一个docker容器网桥(docker0) docker启动一个容器时会根据docker网桥的网段分配给容器一个IP地址,称为Container-IP 同时Docker网桥是每个容器的默认网关。因为在同一宿…

Docker-------网络模式

目录 前言 一、Docker 网络实现原理 二、Docker的网络模式 1、Host模式 2、Container模式 3、none模式 4、 bridge模式 三、自定义网络 1、查看网络模式列表 2、查看容器信息(包含配置、环境、网关、挂载、cmd等等信息) 3、指定分配容器IP地址 4、…

【k8s】docker网络模式(必知)

docker网络部分的视频我看了很多,讲解最透彻的还是https://www.bilibili.com/video/BV123411y7TB?p8获取本文方式:见谷粒商城文尾,备注【docker网络】k8s思维导图:https://www.processon.com/view/link/615bc61e637689127946ea5d…

Docker容器如何连接网络+容器间网络互通+Docker网络模式+自定义网络+网络打通

Docker网络 问题:Docker容器如何连接网络Docker容器之间能否接通网络Docker容器之间可以通过名称ping通吗能否自定义一个网络 那么,我们带着几个问题来学习docker的网络 Docker容器是如何连接网络的 我们在安装了Docker以后,在 宿主机上 i…

docker网络模式

目录 一、Docker网络实现原理 二、Docker的网络模式 1、Host模式 2、Container模式 3、none模式 4、bridge模式 三、自定义网络 1、查看网络模式列表 2、查看容器信息(包含配置、环境、网关、挂载、cmd等等信息) 3、指定分配容器IP地址 4、自定义网络固定…

Docker的网络模式

目录 一、Docker网络 1、Docker网络工作原理 2、为容器创建端口映射 二、Docker的网络模式 1、Docker的网络模式 2、查看docker的网络列表 3、指定容器网络模式 三、Docker网络模式详解 1、host模式 2、container模式 3、none 模式 4、bridge 模式 5、自定义网络模…

Docker:(四)docker网络模式

目录 一:虚拟网关 二:docker常用的几种网络模式 2.1Host模式 2.2container模式 2.3bridge模式(默认) 2.4None模式(躺平) 扩展:overlay叠加网络模式 三:自定义网络 3.1查看网…

docker 网络五种模式

docker 网络五种模式 一:Host模式 host容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口范围,如果启动容器的时候使用host模式,那么这个容器将不会获得独立的网卡名称空间,那是和宿主…

Docker 的4种网络模式

我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--nethost指定。container模式,使用--netcontainer:NAME_or_ID指定。none模式,使用--n…

Docker网络模式解析

目录 前言 一、常用基本命令 (一)查看网络 (二)创建网络 (三)查看网络源数据 (四)删除网络 二、网络模式 (一)总体介绍 (二&#xff09…

Docker容器之网络模式

目录 引言 一、Docker网络实现原理 二、Docker的网络模式 2.1、HOST模式 2.2、Container模式 2.3、None模式 2.4、bridge模式 三、自定义网络 3.1、查看网络模式列表 3.2、查看容器详细信息(包含配置、环境、网关、挂载、cmd等信息) 3.3、指定…

docker三种网络模式

1.docker默认的三种网络模式: bridge:桥接模式 host:主机模式 none:无网络模式 查看网络模式: docker network ls 2.桥接模式 简介:桥接模式是docker 的默认网络设置,当Docker服务启动时,…

docker的五种网络模式

目录 一、bridge网络(网桥的方式) 二、host网络 三、none网络 四、自定义网络 五、container模式 一、bridge网络(网桥的方式) 可以很清楚的看出容器和宿主机的关系,当我们docker程序运行时,我们会增加一…

Docker--网络模式

文章目录 一、Docker网络实现原理二、Docker的网络模式1.Host模式2.Container模式3.None模式4.Bridge模式 三、自定义网络1.查看网络模式列表2.查看容器信息(包含配置、环境、网关、挂载、cmd等等信息)3.指定分配容器IP地址 四、暴露端口五、为容器创建端…

Docker系列---网络模式 | Dockerfile | 参数讲解 | 详细说明

网络模式 | Dockerfile Docker 原生网络Docker 网络图解Docker 四种网络模式Host 模式Container模式None模式Bridge模式 Docker 网络自定义查看网络列表自定义网络固定IP暴露端口在宿主机环境执行容器内命令systemctl 命令 Docker 镜像分层Dockerfile 操作指令例:do…

七、Docker网络模式详解

目录 一、docker网络概述1、docker网络实现的原理2.容器的端口映射1).端口映射2).四种端口映射3).端口映射演示(1).随机端口映射(-P)(2).指定端口映射(-p 宿主机端口:容器端口)(3).指定网卡随机端口映射(-p ::&#xf…