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感兴趣,点击进入

数据卷映射(Volume Mapping)是Docker容器技术中的一项重要功能,它允许用户将宿主机上的目录或者文件映射到容器内的某个目录。这样做的好处是可以实现宿主机和容器之间的数据共享与持久化存储。 具体到您提到的例子,用户希望将宿主机的目录`/opt/docker/tomcat-webapp/`映射到容器的目录`/usr/local/tomcat/webapps/`。当进行这样的映射后,容器内的`/usr/local/tomcat/webapps/`目录将直接访问到宿主机上的`/opt/docker/tomcat-webapp/`目录中的内容。如果容器内的应用需要访问或修改这些内容,直接操作`/usr/local/tomcat/webapps/`即可,而这些更改会实时反映在宿主机的`/opt/docker/tomcat-webapp/`目录上。 进行数据卷映射通常在运行Docker容器时通过`-v`参数指定,格式为`宿主机目录:容器内目录`,并且通常需要指定文件权限,如只读(ro)或读写(rw)。 例如,在命令行中启动一个Docker容器并进行映射的命令可能如下: ``` docker run -d -v /opt/docker/tomcat-webapp/:/usr/local/tomcat/webapps/:rw --name my-tomcat tomcat ``` 这里`-d`表示后台运行容器,`-v`指定了映射关系和权限,`--name`为容器指定了一个名称。 在使用数据卷映射时,需要注意以下几点: 1. 宿主机的目录可以不存在,Docker会自动创建;但如果目录存在,其中的内容会被复制到容器内,这可能会覆盖容器内的原有内容。 2. 映射的权限要根据实际需求来设置,比如对数据库文件可能只需要只读权限,而对应用的临时文件则可能需要读写权限。 3. 容器内的文件系统是隔离的,所以对宿主机文件的更改并不会影响容器内原有的文件,反之亦然。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值