Docker学习:容器之间单/双向通信 |--link /自定义网络实现互认容器别名 (理论篇)

本文深入探讨了Docker容器之间的通信方式,从默认桥接模式下的IP通信,到--link的单/双向通信,再到Bridge自定义网络的双向通信。通过实例演示了如何实现容器间的别名互访,强调了自定义网络模式在多容器通信中的优势和灵活性。
摘要由CSDN通过智能技术生成

前言

本讲是从Docker系列讲解课程,单独抽离出来的一个小节,单纯的介绍容器之间的通信,它和上一篇容器五种(3+2)网络模式中的自定义网络模式知识点互补。

本文带你的帮助, 让你在了解容器5种网络模式的基础上,对容器之间的通信有更清晰、深刻的了解,这也会后期学好K8s做好基本功铺垫。

概述

同一宿主机内A、B两个容器

单向通信:A需要知道B的存在,B不需要知道A的存在。

双向通信:A/B要相互知道对方的存在,并能正常的互通有无。

该模式,需要使用到上一讲,自定义网络模式的知识点,具体如下

一、容器之间默认桥接模式,基于IP的双向通信

1.容器间通过虚拟IP访问(效果差

1)分别以桥接模式启动nginx和Tomcat两个容器,并分别赋予别名nginx、tomcat

docker ps -a #实验前,清空干扰容器
docker images #查看本机镜像列表
docker run --name nginx  -d nginx:alpine  #运行nginx容器
docker run --name tomcat -d -p 8080:8080 tomcat:8.5.46-jdk8-openjdk   #运行tomcat容器

 2)docker inspect 获取两个容器的Ip地址 

docker ps -a  #查看正在运行容器列表(主要是获取容器id)
docker inspect 7a  #根据容器ID首字母,查看nginx容器详细信息(主要是查看IP) 172.17.0.2
docker inspect 07  #根据容器ID首字母,查看tomcat容器详细信息(主要是查看IP)  172.17.0.3

 可以获悉,nginx和tomcat的虚拟IP分别为 172.17.0.2、172.17.0.3

 

3)docker exec 进入nginx内部,访问tomcat的IP

docker ps
docker exec -it nginx /bin/sh  #使用nginx别名,进入nginx容器内部
ping -w 3 172.17.0.3:8080   #ping tomcat的Ip和端口
curl 172.17.0.3:8080

发现,通过IP是可以ping通同一宿主内的其他容器的这是bridge网络模式的特性) 

 注:如果你对进入nginx容器内部为什么是/bin/sh不是/bin/bash感兴趣,点击进入

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值