小白网-奉贤部落-奉贤免费信息发布平台

查看: 57|回复: 0

docker建立容器,端口映照(docker启动端口映照)

[复制链接]

2万

主题

0

回帖

8万

积分

论坛元老

Rank: 8Rank: 8

积分
88256
发表于 2025-7-26 13:01 | 显示全部楼层 |阅读模式
Docker不但供给收集拜候,还供给两种便利的功用,满足办事拜候的根基需求他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。一个是答应将容器中利用法式的办事端口映照到当田主机;另一个是互联机制,可以经过容器名快速拜候多个容器他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
1.端口映照实现容器拜候1他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。从内部拜候容器利用法式他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
启动容器时,假如不指定响应的参数,就没法经过容器内部的收集拜候容器内部的收集利用和办事他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。当容器中运转一些收集利用法式时,可以经过-p或-P参数来援用商品映照他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。利用-P (capital)选项时,Docker会随机将一个49000-49900的商品映照到其他内部装备的开放网口他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
可以看到当地计较机的32770映照到容器的8080端口,经过拜候主机的32770端口可以拜候容器中的web利用他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
2.映照一切接口地址他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
利用HostPort:ContainerPort的格式将当地8080端口映照到容器的8080端口,您可以履行以下号令:
此时,一切当地接口上的一切地址都将被默许绑定,而且可以经过屡次利用-p标志来绑定多个端口他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
3.映照到指定地址的指定端口
您可以利用IP:HostPort:ContainerPort格式来指定映照利用特定的地址,例如localhost地址127.0.0.1他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
[root @ localhost ~]# docker run-it-name test-Tomcat-p 127 . 0 . 0 . 1:8080:8080 299 D4 C2 f 91 FD
4.映照到指定地址的任何端口
利用IP::ContainerPort将localhost的肆意端口绑定到容器的端口8080,当田主机遇自动分派一个端口:
[root @ localhost ~]# docker run-it-name test-Tomcat-p 127 . 0 . 0 . 1::8080 299 D4 C2 f 91 FD
第二,容器互连——链接参数答应容器平安地交互他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
参数格式:- link name:alias,name是要链接的容器的称号,allias是此毗连的别名他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
假如同一个主机上的多个docker容器想要相互通讯,可以利用容器的ip地址停止通讯,也可以利用主机的ip加上容器表露的端口停止通讯他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。前者会致使ip地址硬编码,不方便迁移,而且重启容器后ip地址会发生变化他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。除非利用牢固ip,否则后者的通讯方式相对简单,只能依靠监听表露端口的进程停止有限的通讯他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。通讯docker的链接机制可以经过一个称号与另一个容器停止通讯他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。链接机制有助于容器发现其他容器,并可以平安地将一些毗连信息传输到其他容器他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
1.首先运转一个容器并指定一个容器名,也就是我们要毗连的容器他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
测试mysql
2.运转另一个容器并链接到上面起头的容器他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
docker run-it-name web _ Tomcat-link MySQL-test:link-MySQL-test Tomcat
虽然tomcat和mysql可以利用链接机制停止通讯,可是它们是若何通讯的呢?它们之间的通讯不是经过端口号,而是经过情况变量他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。docker会将源容器myslq中界说的情况变量导入到接收留器中他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。让我们别离看看这两个容器的情况变量他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
容器互联有两种方式,一种是经过情况变量;二是/etc/hosts文件;
1.情况变量
mysql-test容器情况变量以下:
web_tomcat容器情况变量以下:
在web_tomcat容器中,可以看到毗连的原始容器的相关情况变量信息他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
2./etc/hosts文件
利用链接机制后,您可以经过指定的称号与方针容器停止通讯他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。这个道理实在是经过在/etc/hosts中增加称号和IP剖析关系来实现的他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。下面是web_tomcat容器中/etc/hosts文件的信息他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
/etc/hosts文件记录了原始容器和毗连容器的信息他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。经过这个文件,可以很好地分析它们之间的关系,也就是完成两个容器之间的通讯他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
而且可以在web_tomcat中安装ping号令,测试能否可以与mysql-test容器停止通讯他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
# apt-get update# apt install iputils-PING# PING MySQL-test PING link-MySQL-test(172 . 17 . 0 . 2)56(84)字节的数据他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。 64字节来自link-MySQL-test(172 . 17 . 0 . 2):icmp _ seq = 1 TTL = 64 time = 0.103 ms64字节来自link-MySQL-test(172 . 17 . 0 . 2):icmp _ seq = 2 TTL = 64 time = 0.173 ms64字节来自link-MySQL-test(172 . 17 . 0 . 2):icmp _ seq
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白网-奉贤部落-奉贤免费信息发布平台  

GMT+8, 2025-11-11 19:12 , Processed in 0.125499 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表