首页 > 其他分享 >docker笔记:docker容器通信参数 --link参数介绍

docker笔记:docker容器通信参数 --link参数介绍

时间:2022-10-26 21:31:11浏览次数:57  
标签:容器 -- tomcat01 ip6 参数 link docker

docker笔记:docker容器通信参数 --link参数介绍_docker

1、link 参数作用

同一个宿主主机上的多个docker容器之间如果需要进行通信,第一种最容易想到的方式就是使用容器自身的ip地址、宿主主机的ip+容器暴露出的端口号来通信,我们知道默认情况下docker重新run后,对应的IP地址就会改变,这样如果两个容器之间通信就会变得非常麻烦,每次都要修改通信的IP地址。这个时候 --link参数就派上大用场了,它会给要链接的容器设定一个通信的别名,即使重启后IP地址发生了改变,依然可以正常通信。

2、命令格式

docker run -d --name myname--link toname:alisname -p 本地端口:容器端口 镜像名称

参数说明:

\-- name:新容器名词

\-- link:目标容器名称:别名

\-p: 本地端口:容器端口

3、link原理

\--link的原理就是在/etc/hosts里面添加了一个alias的名称

4、测试案例

首先启动一个tomcat01的容器

docker run -itd --name tomcat01 -p 8100:8080 tomcat:8.5.38

docker ps 获取容器的id d92f947ea54f

docker笔记:docker容器通信参数 --link参数介绍_docker_02

获取单个容器 ip

docker inspect -f '{


{range .NetworkSettings.Networks}}{


{.IPAddress}}{


{end}}' d92f947ea54f

docker笔记:docker容器通信参数 --link参数介绍_nginx_03

启动一个nginx容器设置与tomcat01连通

docker run -itd --name nginx01 --link tomcat01 nginx

进入容器内部查看 etc/hosts配置文件

docker exec -it nginx01 /bin/bash #进入容器内部
apt update && apt install -y iproute2 # 安装ping命令
cat /etc/hosts #查看配置文件
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4 tomcat01 d92f947ea54f
172.17.0.6 70aa4c7dde72

测试nginx01 ping tomcat01

docker exec -it nginx01 ping tomcat01 
PING tomcat01 (172.18.0.2): 56 data bytes
64 bytes from 172.18.0.2: icmp_seq=0 ttl=64 time=0.102 ms
64 bytes from 172.18.0.2: icmp_seq=1 ttl=64 time=0.093 ms
64 bytes from 172.18.0.2: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 172.18.0.2: icmp_seq=3 ttl=64 time=0.073 ms

5、link参数注意事项

  • 使用link参数建立的容器所链接的主机需要处于运行状态
  • 所链接的容器也必须是运行状态
  • 使用link选项链接的主机ip不需要固定,因为每次新建容器都会检查所链接容器的ip,并在/etc/hosts里生成新的alias 名称对应的ip

标签:容器,--,tomcat01,ip6,参数,link,docker
From: https://blog.51cto.com/itShareArea/5798592

相关文章

  • 页面切割技术
    页面切割技术:1)<frameset>和<frame>:<frameset>:用来切割页面(只能用来切割).<framesetcols="20%,60%,20%"rows="10%,80%,10%"> 其中cols表示按......
  • 接水问题(NOIP 2010 PJT2)
      这个的思路就是让各个水龙头所用的时间尽可能地接近,可以先向优先队列中推入前m个数,由于开的是小根堆最小的数在前面我们把它拿出来,加上下一个人所需的时间。如此反复......
  • Lab2_syscall
     操作系统实验报告 lab2【Systemcalls】       学生姓名:jeekzhang 学 号:20307130XXX 专 业:计算机科学与技术一、实验内容:PartA......
  • 包装类,装箱和拆箱
    包装类:lang包里面的常用类,lang包不用导包,它是JVM内置包包含基本类型的包装:为了丰富基本类型的操作,提供八个包装类型,对于数值类型的都有一个父类,number,并且继承了compara......
  • 适配器模式
    适配器模式 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前......
  • 建造者模式
    建造者模式(生成者模式)指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的......
  • 10月26日内容总结——第三方模块下载与requests、openpyxl模块
    目录一、第三方模块的下载与使用下载第三方模块的方式一:pip工具部分错误解决案例:下载第三方模块的方式二:pycharm中下载pip仓库地址二、网络爬虫模块之requests模块1、get()......
  • JUnit
    1.简介1.JUnit主要用于来做局部(单元测试)的测试可以快速帮助查找bug2.测试分类:A.黑盒测试主要偏向于(按照需求文档编写测试用例进行测试)功能测试以及接口测试(......
  • 第三模块的下载、requests模块、openpyxl模块
    第三方模块的下载安装第三方模块:别人写的模块一般情况下都特别强大我们如果想使用第三方模块第一次必须先下载后面才可以反复使用(等同于内置模块)下载第三模块的......
  • 计算中文在内存占用的字节数
    #include<iostream>usingnamespacestd;voidmain(){ //功能:计算中文在内存占用的字节数 charname[]="成都"; charnode_name[]="成都移动04节点"; co......