2016-09-17 59 views
0

我开始用Docker构建环境开发我的应用程序。在生产中逐步迁移到Docker

我有上我与Apache服务的几个(本地安装)Web应用程序的物理服务器。

Apache listening on 80 
    sites-available 
     app1 -> locally installed in /apps/app1 
     app2 -> locally installed in /apps/app2 
     ... 

现在我已经为我的应用程序准备了一个全面的Docker生产环境。我想插在我的旧服务器的本地安装的应用程序旁边:

Apache listening on 80 
    sites-available 
     app1 -> locally installed in /apps/app1 
     app2 -> locally installed in /apps/app2 
     app3 -> proxy to the related Docker service 
     ... 

,并逐步Dockerize我的其他现有的应用程序。

主要问题是:
我必须每次都在专用端口中公开dockerized服务吗?

有一些网络技术,我不知道的,我可以用它来最后几个代理业务的同一台机器上运行?

你也可以指点我一些Apache代理的例子吗?

最终,我会打开Nginx的时候我就会有一个独家代理。

回答

1

在Docker中,公开特定容器的首选方法是使用专用端口。有很多方法可以直接连接到容器,特别是当您在同一台计算机上运行时,但是如果重新构建容器,则会创建跟踪容器当前IP的挑战。

对于您的情况,我建议在容器中放置第二个代理。由于它作为一个容器运行,它可以通过名称连接到每个其他容器。我个人最喜欢的这个实现是nginx-proxy,它监听docker socket的启动和停止以自动更新其配置。

然后,一旦你完成你迁移到容器中,您可以在nginx的代理在关闭现有的Apache代理过程中添加其他侦听端口。

+0

这很有趣。我想大多是我在寻找什么。 –