多个docker容器作为单个IP上的Web服务器

前端之家收集整理的这篇文章主要介绍了多个docker容器作为单个IP上的Web服务器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在一台机器上有多个码头容器.在每个容器上运行一个进程和一个Web服务器,为进程提供一个API.

我的问题是,当默认端口为80时,如何从浏览器访问API?要能够访问docker容器内的Web服务器,请执行以下操作:

sudo docker run -p 80:80 -t -i 

这样我可以从我的电脑终端:

curl http://hostIP:80/foobar

但是如何处理这个多个容器和多个Web服务器?

您可以公开多个端口,例如

docker run -p 8080:80 -t -i 

或者在API容器的前面放一个代理(nginx,apache,varnish等).

更新:

执行代理的最简单的方法是将其链接到API容器,例如.有apache配置

RewriteRule ^api1/(.*)$http://api1/$1 [proxy]
RewriteRule ^api2/(.*)$http://api2/$1 [proxy]

你可以这样运行你的容器:

docker run --name api1 

这可能有点麻烦,但是如果您需要重新启动api容器,因为代理容器也必须重新启动(链接在docker上相当静态).如果这成为一个问题,您可以查看诸如fig自动更新的代理配置之类的方法http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/.后面的链接显示了用Nginx代理.

更新二:

在更现代的泊坞台版本中,可以使用user defined network而不是上面显示链接来克服不推荐链接机制的一些不便.

原文链接:https://www.f2er.com/docker/437073.html

猜你在找的Docker相关文章