从外部访问坞实例的最佳实践是什么。
我计划部署几个对接实例(node.js、php、mysql),这些实例要么打包在一个容器中,要么通过容器之间的对接链接进行打包。
可以为每个对接器实例控制主机上的端口,但是从外部访问这些实例的最佳实践应该是什么。我宁愿只拥有子域,并摆脱实例的转发端口。
user@server:~/sandbox/docker-nginx$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3fc7c57ed66c docker-wordpress-nginx:latest /bin/bash /start.sh 3 days ago Up 3 days 0.0.0.0:49153->80/tcp evil_poincare 预期行为:请求wordpress.domain.com通过端口49153访问停靠实例中的wordpress,但浏览器不使用该端口重写位置。
我看了一下/尝试了几种方法,但没有一种方法给了我这种功能:
任何关于这个问题的想法,以及任何关于最佳实践的建议都将不胜感激,也许我只是遗漏了一些东西。
发布于 2014-10-01 13:11:39
最好的做法是避免在Docker容器中执行任何命令行任务,使nginx容器正常运行的最佳方法是创建自定义映像并将配置文件添加到映像的Dockerfile中。
您可以找到关于如何使用自定义配置这里创建自定义映像的详细说明。
发布于 2016-04-05 18:55:26
我的回答有点晚了:为了将来的参考,您应该看看https://github.com/jwilder/nginx-proxy。该工具自动生成适当的Nginx配置,将传入的请求转发到Docker容器(基于子域)。
首先,启动nginx代理:
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy例如,如果要将sub.domain.com重定向到特定容器,只需将VIRTUAL_HOST容器环境变量设置为"sub.domain.com":
docker run -e VIRTUAL_HOST=sub.domain.com ...下面是我所写的详细教程:http://blog.florianlopes.io/host-multiple-websites-on-single-host-docker。
它完全符合你的预期行为。
https://serverfault.com/questions/580321
复制相似问题