同一宿主机内不同docker间通讯的实现示例

 更新时间:2025年11月17日 09:24:55   作者:hakukun  
本文主要介绍了同一宿主机内不同docker间通讯的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

推荐使用自定义Bridge网络,实现同一宿主机内不同docker间通讯。自定义网络会自动维护 “容器名→IP” 的映射(DNS 服务),容器可直接通过容器名通讯,无需手动管理 IP,稳定性最高。

1. 创建自定义网络

执行命令创建一个名为 my-network 的桥接网络(驱动为 bridge)

sudo docker network create --driver bridge my-network

2. 启动容器时加入自定义网络

启动容器时通过 --network my-network 指定网络,同时可通过 --name 给容器起固定名称(方便通讯)

# 打开一个终端,启动容器A(命名为app1)
sudo docker run -it --name app1 --network my-network osrf/ros:noetic-desktop-full
# 打开另一个终端,启动容器B(命名为app2)
sudo docker run -it --name app2 --network my-network osrf/ros:noetic-desktop-full

3. 容器间通讯连接测试

进入app2 容器,测试与app1(容器名)连接

# 如果显示bash: ping: command not found时执行
sudo apt-get update
sudo apt-get install iputils-ping
# 在 app2内ping app1(验证连通性)
ping app1 # 会解析到 app1 的容器IP

如下图可见,可以正常ping通

4. 网络连接操作

1. 查看网络

sudo docker network ls

NAME 列显示网络名称,自定义网络通常是用户指定的名称(如 my-network)
DRIVER 列显示网络驱动类型(自定义网络常用 bridge) 

2. 查看特定网络的详细信息

如果需要了解某个网络的详细配置(如关联的容器、IP 网段等),使用 docker network inspect 命令:

sudo docker network inspect 网络名称或ID

输出会包含网络的 IP 配置、关联的容器列表、创建时间等详细信息:

3. 删除自定义网络

  • 先断开容器与网络的连接(可选)。如果网络中有关联的容器,需先将容器从网络中移除(容器可以继续运行):
sudo docker network disconnect 网络名称 容器名称或ID

示例(将容器 app1 从 my-network 中移除):

sudo docker network disconnect my-network app1
  • 删除自定义网络
sudo docker network rm 网络名称或ID

示例(删除名为 my-network 的自定义网络):

sudo docker network rm my-network

如果删除成功,命令会返回被删除的网络名称;如果失败(如网络中仍有关联容器),会提示错误信息。

到此这篇关于同一宿主机内不同docker间通讯的实现示例的文章就介绍到这了,更多相关同一宿主机docker间通讯内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 通过UI管理docker的方法

    通过UI管理docker的方法

    这篇文章主要介绍了通过UI管理docker的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • docker system命令集合的使用

    docker system命令集合的使用

    本文主要介绍了docker system命令集合的使用,主要包括清理没有使用的数据,包括镜像数据,已经停止的容器等等,具有一定的参考价值,感兴趣的可以了解下
    2021-10-10
  • docker创建并运行一个MySql容器,并将宿主机直接挂载到容器

    docker创建并运行一个MySql容器,并将宿主机直接挂载到容器

    这篇文章主要介绍了docker创建并运行一个MySql容器,并将宿主机直接挂载到容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 用Docker swarm快速部署Nebula Graph集群的教程

    用Docker swarm快速部署Nebula Graph集群的教程

    这篇文章主要介绍了用Docker swarm快速部署Nebula Graph集群的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Docker Registry仓库加密传输与登录认证方式

    Docker Registry仓库加密传输与登录认证方式

    本文详细介绍了如何为Docker私有仓库配置加密传输(TLS)和认证功能,包括生成自签名证书、配置客户端证书、添加认证文件和测试仓库功能
    2025-12-12
  • Docker创建一个Nginx服务器的方法步骤

    Docker创建一个Nginx服务器的方法步骤

    使用Dokcer可以很好的对镜像进行管理,创建和使用容器。这篇文章主要介绍了Docker创建一个Nginx服务器的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Docker多阶段镜像构建与缓存利用性能优化实践指南

    Docker多阶段镜像构建与缓存利用性能优化实践指南

    这篇文章将从原理层面深入解析 Docker 多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少镜像体积,感兴趣的小伙伴可以了解下
    2025-09-09
  • ubuntu 14.04 64位安装配置docker教程

    ubuntu 14.04 64位安装配置docker教程

    这篇文章主要为大家详细介绍了ubuntu 14.04 64位安装配置docker教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • docker搭建odoo16开发环境的实现

    docker搭建odoo16开发环境的实现

    Odoo是全球流行的开源企业管理套件,本文主要介绍了docker搭建odoo16开发环境的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • vscode进入服务器docker容器的方法

    vscode进入服务器docker容器的方法

    这篇文章主要介绍了vscode进入服务器docker容器的方法,首先要确保已经运行docker容器,已经用vscode链接服务器,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04

最新评论