Docker容器间通信之BIP使用及配置方式

 更新时间:2025年01月06日 09:02:22   作者:学亮编程手记  
Docker使用桥接网络(BridgeNetwork)和BIP(BridgeIP)来管理容器之间的网络通信,默认情况下,Docker会自动创建一个名为bridge的虚拟网络接口,并为每个容器分配一个独立的IP地址,在/etc/docker/daemon.json文件中可以进行自定义配置

Docker容器间通信之BIP使用及配置

Docker 使用一个称为 bip (Bridge IP) 的概念来管理容器之间的网络通信。

在 Docker 中,当你创建一个容器时,默认情况下这个容器会被连接到一个名为 bridge 的网络上。

这个网络是由 Docker 自动创建的,并且每个 Docker 宿主机上都有一个这样的网络。

Bridge Network 和 BIP

  • Bridge Network: 是一种虚拟网络接口,它允许 Docker 容器通过宿主机上的物理网络接口与其他容器或外部网络进行通信。每个容器都会被分配一个独立的 IP 地址,并且这些地址都位于桥接网络的子网上。
  • BIP (Bridge IP): 是指桥接网络的网关 IP 地址。当容器启动时,它们会自动获得一个在这个子网内的 IP 地址,并且这个子网的网关就是 bip 地址。

配置 Bridge Network 和 BIP

默认情况下,Docker 会在启动时自动配置 bridge network,并且会为该网络分配一个 IP 地址作为其网关(即 BIP)。

这个地址通常是一个私有 IP 地址,例如 172.17.0.1

你可以在 /etc/docker/daemon.json 文件中进行自定义配置,以更改默认设置。

示例配置

假设你想自定义 Docker 的 bridge network 的 IP 地址范围和网关,可以在 /etc/docker/daemon.json 文件中添加以下内容:

{
  "bip": "192.168.5.1/24",
  "fixed-cidr": "192.168.5.2/24"
}

这里:

  • "bip": "192.168.5.1/24" 指定了 bridge network 的网关 IP 地址和子网掩码。
  • "fixed-cidr": "192.168.5.2/24" 指定了容器将从这个子网内获取 IP 地址。

重启 Docker 服务

修改完配置文件后,你需要重启 Docker 服务以使更改生效:

sudo systemctl restart docker

请注意,如果你已经有一些容器正在运行,并且想要更改这些容器的网络配置,那么你需要先停止并重新启动这些容器。

手动创建 Bridge Network

除了使用默认的 bridge network 外,你还可以手动创建自定义的 bridge network,并指定特定的 IP 地址池。

例如,你可以使用 docker network create 命令创建一个新的 bridge network,并指定 IPAM 配置:

docker network create --driver bridge --subnet=192.168.5.0/24 --gateway=192.168.5.1 my_network

这将创建一个名为 my_network 的新网络,并且所有连接到此网络的容器都将从 192.168.5.0/24 子网中获取 IP 地址,而网关将是 192.168.5.1

总结

  • 默认情况下,Docker 使用 bridge 网络,可以自定义其配置。
  • 可以通过修改 /etc/docker/daemon.json 文件来自定义 bipfixed-cidr
  • 也可以通过 docker network create 命令手动创建自定义的 bridge network 并指定 IP 地址池。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker部署mysql 9.0.1的实现

    docker部署mysql 9.0.1的实现

    本文主要介绍了docker部署mysql 9.0.1的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • docker容器状态转换管理命令实例详解

    docker容器状态转换管理命令实例详解

    Docker容器只是一个运行于宿主操作系统host OS上的应用进程,所以你需要一个镜像来运行它,Docker镜像以进程的方式运行时就叫做Docker容器,这篇文章主要给大家介绍了关于docker容器状态转换管理命令的相关资料,需要的朋友可以参考下
    2022-05-05
  • 教你一分钟搞定docker+redis哨兵模式

    教你一分钟搞定docker+redis哨兵模式

    这篇文章主要介绍了教你一分钟搞定docker+redis哨兵模式,本文主要讲解一主二从三哨兵,特将其部署到一台机器上,并通过端口区分,需要的朋友可以参考下
    2023-03-03
  • docker安装kong网关的方法示例

    docker安装kong网关的方法示例

    这篇文章主要介绍了docker安装kong网关的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • dockerfile健康检查HEALTHCHECK的命令学习

    dockerfile健康检查HEALTHCHECK的命令学习

    HEALTHCHECK 指令告诉 Docker 如何测试一个容器,以检查它是否仍在工作,本文主要介绍了dockerfile健康检查HEALTHCHECK的命令学习,感兴趣的可以了解一下
    2024-01-01
  • docker实现将容器设置与宿主机为同一局域网

    docker实现将容器设置与宿主机为同一局域网

    文章介绍了在CentOS和Ubuntu上为Docker添加虚拟网卡的步骤,包括命名规则、重启网络和运行Docker等
    2025-12-12
  • Docker部署JDK镜像的实现步骤

    Docker部署JDK镜像的实现步骤

    本文主要介绍了Docker部署JDK镜像的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • docker-compose的build使用方式

    docker-compose的build使用方式

    这篇文章主要介绍了docker-compose的build使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • docker compose运行微服务项目的方法

    docker compose运行微服务项目的方法

    这篇文章主要介绍了docker compose运行微服务项目 ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • docker部署Nestjs的简单配置实现

    docker部署Nestjs的简单配置实现

    使用Docker部署NestJS应用程序可以确保在不同的环境中运行一致,并且避免了由于依赖关系或配置问题导致的部署错误,本文主要介绍了docker来部署Nestjs的简单配置,感兴趣的可以了解一下
    2024-02-02

最新评论