同一宿主机内不同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间通讯内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker-compose 建立ELK集群的实现方法

    Docker-compose 建立ELK集群的实现方法

    这篇文章主要介绍了Docker-compose 建立ELK集群的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Docker Compose部署Nginx的方法步骤

    Docker Compose部署Nginx的方法步骤

    本文主要介绍了Docker Compose部署Nginx的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 解决docker容器启动后马上退出的问题

    解决docker容器启动后马上退出的问题

    这篇文章主要介绍了解决docker容器启动后马上退出的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 快速设置Docker的三种网络代理配置方式

    快速设置Docker的三种网络代理配置方式

    这篇文章主要介绍了快速设置Docker的三种网络代理配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • docker生产环境jvm性能优化方式

    docker生产环境jvm性能优化方式

    这篇文章主要介绍了docker生产环境jvm性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Docker容器数据卷的使用教程

    Docker容器数据卷的使用教程

    数据卷容器是一个专门用来挂载数据卷的容器,该容器主要是供其他容器引用和使用,下面这篇文章主要给大家介绍了关于Docker容器数据卷使用的相关资料,需要的朋友可以参考下
    2022-10-10
  • Docker下安装部署Clickhouse及其远程访问方式

    Docker下安装部署Clickhouse及其远程访问方式

    文章介绍了如何远程拉取和安装ClickHouse Docker镜像,配置和部署ClickHouse容器,并通过DataGrip远程访问ClickHouse
    2024-11-11
  • Docker Desktop如何设置镜像环境变量

    Docker Desktop如何设置镜像环境变量

    Docker Desktop配置镜像环境变量需设置容器名称、端口映射、卷和环境变量,如PostgreSQL需指定POSTGRES_PASSWORD,建议按需配置,以确保数据持久化和参数传递
    2025-07-07
  • docker-compose 搭建redis集群(三台服务器,每台服务器上一主一从)

    docker-compose 搭建redis集群(三台服务器,每台服务器上一主一从)

    本文主要介绍了Docker Compose搭建Redis集群是一种便捷高效的方法,本次搭建使用三台服务器,每台服务器上一主一从,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • Docker load命令进行镜像恢复与迁移的完整指南

    Docker load命令进行镜像恢复与迁移的完整指南

    docker load 是 Docker 镜像生命周期管理的关键命令,它与 docker save 配合实现镜像的离线迁移和环境复制,是企业级容器化部署的基础工具,下面我们就来看看具体实现方法吧
    2025-09-09

最新评论