2015-01-15 92 views
1

我刚刚开始使用Docker,昨天我阅读了大量文档和教程,但是我找不到使用链接容器替换外部服务的位置,而我我甚至不确定要搜索哪个术语。用外部服务替换Docker容器

说有一个apache容器和容器mysql,其中apache的链接已运行到mysql,并已获得其港口和这样。例如,现在不是在容器实例上运行MySQL,而是将它移动到AWS RDS。如何修改mysql容器,以便apache能够按预期持续运行?为了澄清,apache仍然会通过指向别名为mysql的容器的链接运行,但mysql容器将负责在发送给AWS的端口上获取流量。

或者,也许有一个容器运行MySQL服务,但该容器在另一个主机上。我有一种模糊的感觉,我所指的模式也能够处理这种情况。这听起来对任何人都很熟悉吗?

+1

你见过https://docs.docker.com/articles/ambassador_pattern_linking/吗? – Andy 2015-01-15 18:35:08

+0

大使模式,是的,这就是我一直在寻找的 – rwilson04 2015-01-15 21:04:24

回答

1

如果容器在另一个主机上,为什么不直接点击主机并且使用3386(或者任何运行mysql的端口)将请求转发到容器时,docker是透明的?我想不出任何你想链接容器的理由,除非它们实际上在同一个主机上。 Docker非常透明,所以客户可以在Docker中从另一台机器上运行一些服务,就好像该服务在没有Docker的机器上直接运行一样。

如果你真的必须在同一台机器上有两个容器(即使mysql容器调用RDS或其他主机),你应该能够创建一个新的简单的mysql镜像,只需安装mysql_client,接受请求并将它们转发给RDS。