首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对码头实例的访问-最佳实践

对码头实例的访问-最佳实践
EN

Server Fault用户
提问于 2014-03-06 19:29:45
回答 2查看 2.7K关注 0票数 3

从外部访问坞实例的最佳实践是什么。

我计划部署几个对接实例(node.js、php、mysql),这些实例要么打包在一个容器中,要么通过容器之间的对接链接进行打包。

可以为每个对接器实例控制主机上的端口,但是从外部访问这些实例的最佳实践应该是什么。我宁愿只拥有子域,并摆脱实例的转发端口。

示例

代码语言:javascript
复制
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,但浏览器不使用该端口重写位置。

我看了一下/尝试了几种方法,但没有一种方法给了我这种功能:

  • 带有弹跳文件的routes.json
  • 在主机中使用nginx的反向代理,但在重定向url中仍然有端口。
  • 天台听起来很棒,但还没有多主机支持
  • 管道工程看起来也不错,但是免责声明警告我们,它应该很快就由docker复杂场景提供。

任何关于这个问题的想法,以及任何关于最佳实践的建议都将不胜感激,也许我只是遗漏了一些东西。

EN

回答 2

Server Fault用户

发布于 2014-10-01 13:11:39

最好的做法是避免在Docker容器中执行任何命令行任务,使nginx容器正常运行的最佳方法是创建自定义映像并将配置文件添加到映像的Dockerfile中。

您可以找到关于如何使用自定义配置这里创建自定义映像的详细说明。

票数 0
EN

Server Fault用户

发布于 2016-04-05 18:55:26

我的回答有点晚了:为了将来的参考,您应该看看https://github.com/jwilder/nginx-proxy。该工具自动生成适当的Nginx配置,将传入的请求转发到Docker容器(基于子域)。

首先,启动nginx代理:

代码语言:javascript
复制
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":

代码语言:javascript
复制
docker run -e VIRTUAL_HOST=sub.domain.com ...

下面是我所写的详细教程:http://blog.florianlopes.io/host-multiple-websites-on-single-host-docker

它完全符合你的预期行为。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/580321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档