栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

容器之间通信

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

容器之间通信

背景

由于业务需求,后端服务要拆分为2个有上下游关系的服务,也算是顺应了微服务的潮流,今天分享一下如何将2个docker容器通信,多个容器也是同样的方式。

方案

第一步: 创建自定义网络
第二步:通过docker-compose 部署相关服务

具体步骤
  1. 创建自定义网络,命令:docker network create --driver bridge network_name (network_name 可以自定义,但是需要和yaml文件里的networks的值保持一致)
  2. 创建docker-compose.yaml文件,并根据实际需求完善内容,例如:
version: "2"
services:
  A_service:
    image: A_service_image_name
    ports:
      - "6666:7777"
    restart: "on-failure"
    container_name: A_service
    networks:
      - network_name
    working_dir: /app

  B_service:
    image: B_service_image_name
    ports:
      - "3333:4444"
    restart: "on-failure"
    container_name: B_service
    networks:
      - network_name
	environment:
	  - "A_SERVICE_URL=http://A_service:6666"
    working_dir: /app

networks:
  network_name:
    external: true
  1. 部署服务,命令:docker-compose -f docker-compose.yaml up -d, 此时在Docker里就可以看到一个网络下有2个容器, 进入B容器内,执行命令: ping A_service , 是可以ping通的,也就意味着这2个服务的通信是OK的。
注意
  1. A_service是下游服务, 供B_service服务调用的, 从上文中的yaml文件可以看出, 定义为:http://A_service:6666, 也就是node名。
  2. 如果是通过docker run 一个个部署的话, 可以先正常部署A服务,然后在部署B服务时, 利用docker中–link参数。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/450352.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号