首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker-engine如何处理多个容器之间的传出和传入流量?

docker-engine如何处理多个容器之间的传出和传入流量?
EN

Stack Overflow用户
提问于 2021-07-29 14:07:21
回答 1查看 38关注 0票数 0

我目前有大约5个have服务器运行在反向代理后面。我想使用外部AD通过ldap协议对我的用户进行身份验证。docker-engine能够单独区分每个容器吗?

我目前的理解是,如果没有容器化的目录服务,或者没有为每个容器公开不同的端口,这是不可能的,但我对此表示怀疑。如果我从我容器中ping一个外部服务器,我能够在相同的容器中得到回复,而不会出现问题。回复是如何到达正确的容器的?我很难理解它对于任何其他协议是如何不同的,但同时需要一个反向代理来为多个for服务器的内容提供服务。如果有人能帮我说清楚一点,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-30 13:29:23

经过更深的挖掘,我找到了我想要的东西。

通过iptables使用IP伪装(类似于NAT),默认网络上的docker会自动路由任何源自容器的流量。它的工作方式是,来自容器的数据包将被剥离容器IP地址,并替换为主机ip地址。原始ip地址将一直保留到tcp会话结束。然后,流量将到达目的地,并且任何回复都将发送回主机。应答数据包将被剥离主机ip并发送到适当的容器。这就是为什么您可以从一个容器ping另一个服务器,并在同一个容器中获得回复。

但显然,它不适用于传入with服务器的流量,因为第一步是客户端启动与with服务器的会话。这就是为什么需要反向代理的原因。

我可能遗漏了一些东西,也可能对其他一些东西有误解,但这是大体的想法。

TLDR:输出流量(和任何回复)将由docker自动路由,您必须使用反向代理将传入流量路由到多个容器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68577461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档