您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

docker run -p 8080:80 -t -i <yourname>/<imagename>
docker run -p 8081:80 -t -i <yourname1>/<imagename1>

或在您的API容器前面放置一个代理(nginx,apache,清漆等)。

做代理的最简单方法是将其链接到API容器,例如具有apache config

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

您可以这样运行容器:

docker run --name api1 <yourname>/<imagename>
docker run --name api2 <yourname1>/<imagename1>
docker run --link api1:api1 --link api2:api2 -p 80:80 <my_proxy_container>

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

在更现代的docker版本中,可以使用用户定义的网络代替上面显示链接,以克服不赞成使用的链接机制的一些不便之处。

其他 2022/1/1 18:16:32 有521人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶