1

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

假设有一个apache容器和一个mysql容器,其中apache运行的链接指向mysql,并且可以访问其端口等。例如,现在我们不再在容器实例上运行 MySQL,而是将其移至 AWS RDS。您如何修改mysql容器以便apache继续按预期运行?澄清一下,apache仍然会使用别名为容器的链接运行mysql,但mysql容器会负责将该端口上的流量发送到 AWS。

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

4

1 回答 1

1

如果容器在另一台主机上,为什么不直接访问主机并让 docker 透明地使用 3386(或您正在运行 mysql 的任何端口)将请求转发到容器?我想不出任何你想要链接容器的理由,除非它们实际上在同一个主机上。Docker 非常擅长透明,因此客户端可以从另一台机器上针对 Docker 中的服务运行事物,就好像该服务直接在没有 Docker 的机器上运行一样。

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

于 2015-01-15T19:22:45.050 回答