加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 03:54:26 所属栏目:安全 来源:网络整理
导读:我在一台机器上有多个码头容器.在每个容器上运行一个进程和一个Web服务器,为进程提供一个API. 我的问题是,当默认端口为80时,如何从浏览器访问API?要能够访问docker容器内的Web服务器,请执行以下操作: sudo docker run -p 80:80 -t -i 这样我可以从我的电脑

我在一台机器上有多个码头容器.在每个容器上运行一个进程和一个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而不是上面显示的链接来克服不推荐链接机制的一些不便.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读