我刚刚开始使用Docker,我昨天阅读了大量文档和教程,但是我找不到有关使用链接容器替换外部服务的内容,我甚至不确定哪个要搜索的术语。
假设有一个apache
容器和一个mysql
容器,其中apache
运行时带有mysql
的链接,并且可以访问其端口等。现在,我们不是在容器实例上运行MySQL,而是将其移至AWS RDS。如何修改mysql
容器以使apache
继续按预期运行?为了澄清,apache
仍将使用带有别名mysql
的容器的链接运行,但mysql
容器将负责获取发送到AWS的该端口上的流量。
或者,也许有一个运行MySQL服务的容器,但该容器在另一台主机上。我有一种模糊的感觉,我所指的模式也能够处理这种情况。这听起来对任何人来说都很熟悉吗?
答案 0 :(得分:1)
如果容器在另一台主机上,为什么不直接点击主机并让docker在3386(或你正在运行mysql的任何端口)向容器转发请求时是透明的?我无法想到你想要链接容器的任何理由,除非他们实际上在同一台主机上。 Docker很擅长透明,所以客户端可以从另一台机器上运行Docker中的服务,就像服务直接在没有Docker的机器上运行一样。
如果你真的必须在同一台机器上安装两个容器(即使mysql容器正在调用RDS或其他主机),你应该能够创建一个新的简单mysql映像,只安装了mysql_client并且只需要请求并将它们转发给RDS。