容器间的互相发现
更新时间:2019-01-23 00:06:58
容器服务为集群内的服务和容器提供多种服务发现方式,可以通过容器名、link、hostname 等进行发现。 容器服务不仅可以通过容器的 IP 进行访问,还可以通过网络中其他容器的容器名进行访问,通过跨主机互联的容器网络 中的例子,您可以在
如果在编排文件中不指定
容器服务支持编排模板服务间的 link,服务间的 link 可以将一个服务的容器 link 到另外一个服务的容器中,而容器中可以通过 link 进来的服务别名访问到依赖的容器,并且在依赖的容器的 IP 变化时可以动态的更新别名解析的 IP。具体的例子可以参考容器服务示例编排中的 WordPress 编排,其中 WordPress 中 Web 服务 link db:mysql 的服务到容器内,如下所示。容器内部就可以通过 MySQL 的域名访问到 db 服务的容器。 如果在编排模板的服务中定义了 hostname 的配置,则在集群中便可以通过这个 hostname 访问到这个容器。 例如: 那么,集群中就可以通过 另外,如果服务没有配置 hostname 的话,容器服务会把容器的容器名作为容器内部的 hostname;如果有应用需要在容器内知道自己的容器名,用于服务的注册,比如 Eureka Client,需要注册一个可被访问的地址到 Eureka Server,容器内的进程可以获取到容器名用于服务注册,并让其他的服务调用者通过容器名互相访问。 通过容器名
test_network-test2_1
的容器中通过 test_network-test1_1
的容器名进行访问。 container_name
的话,默认的容器名为
{project-name}_{service-name}_{container-index}
。在连接管理终端后,您可以通过另外一个服务的容器名进行访问,来测试网络的连通性。如下图所示。
通过 link
links:
- 'db:mysql'
通过 hostname
testhostname:
image: busybox
hostname: xxserver
command: sleep 100000
tty: true
xxserver
解析并访问到这个服务的容器,具体请参见跨主机互联的容器网络 的编排示例。当这个服务在有多个容器时,通过这个域名访问还可以做到一定的负载均衡的作用。
相关文档
相关产品
-
容器服务(已停止服务)
容器服务(Container Service)提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大地简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力,打造 Docker 云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。
-
容器服务Kubernetes版
容器服务Kubernetes版(Container Service for Kubernetes)提供高性能可伸缩的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理。
-
容器镜像服务
容器镜像服务(Container Registry)提供安全的应用镜像托管能力,精确的镜像安全扫描功能,稳定的国内外镜像构建服务,便捷的镜像授权功能,方便用户进行镜像全生命周期管理。容器镜像服务简化了Registry的搭建运维工作,支持多地域的镜像托管,并联合容器服务等云产品,打造云上使用Docker的一体化体验。
以上内容是否对您有帮助?
在文档使用中是否遇到以下问题
-
内容错误
-
更新不及时
-
链接错误
-
缺少代码/图片示例
-
太简单/步骤待完善
-
其他
-
内容错误
-
更新不及时
-
链接错误
-
缺少代码/图片示例
-
太简单/步骤待完善
-
其他
更多建议
匿名提交感谢您的打分,是否有意见建议想告诉我们?
感谢您的反馈,反馈我们已经收到
文档反馈
鼠标选中内容,快速选择问题
选中存在疑惑的文档内容,即可生成 截图进行反馈,我们会跟进处理。
文档反馈