Linux vps上docker容器上输出端口的nginx/apache重定向

Linux vps上docker容器上输出端口的nginx/apache重定向,linux,apache,nginx,docker,vps,Linux,Apache,Nginx,Docker,Vps,我是一个linux noob,在VPS上使用apache或nginx管理docker容器 我使用OVH经典Vps(4go ram,25Go SSD)和已经安装的ubuntu 15.04+docker映像 docker容器的安装非常简单,在我的例子中,我安装映像时没有问题 可通过VPS的IP访问站点,网址为http://51.255.47.40:5000端口显示站点工作没有任何问题 我已经有一个子域(tools.sebastienreycoyrehourcq.fr)配置为在服务器ip vps上运行

我是一个linux noob,在VPS上使用apache或nginx管理docker容器

我使用OVH经典Vps(4go ram,25Go SSD)和已经安装的ubuntu 15.04+docker映像

docker容器的安装非常简单,在我的例子中,我安装映像时没有问题

可通过VPS的IP访问站点,网址为
http://51.255.47.40:5000
端口显示站点工作没有任何问题

我已经有一个子域(tools.sebastienreycoyrehourcq.fr)配置为在服务器ip vps上运行(
51.255.47.40
在WebParty面板中路由到外部),不工作,不明白为什么

我在
51.255.47.40
上安装了apache服务器,但我想最好的选择可能是安装nginx或apache的docker映像?在这一点上你能给我一些建议吗?在那之后,我如何在链接到我的子域的apache或nginx的经典80端口上重定向到docker映像的
5000
端口?

nginx代理
(),然后运行sharelatex,并将
VIRTUAL_HOST
设置为tools.sebastienreycoyrehourcq.fr应该足以让它正常工作

e、 g

docker run -d \
-e VIRTUAL_HOST=tools.sebastienreycoyrehourcq.fr \
-v ~/sharelatex_data:/var/lib/sharelatex \
-p 5000:80 \
--name=sharelatex \
sharelatex/sharelatex

子域
tools.sebastienreycoyrehourcq.fr
配置不正确。它不会解析为任何IP地址,这是它无法工作的原因

配置子域后,可以使用以下命令在端口80上运行sharelatex容器:

docker run -d \
  -v ~/sharelatex_data:/var/lib/sharelatex \
  -p 80:80 \
  --name=sharelatex \
  sharelatex/sharelatex

通过这种方式,您可以访问位于

的应用程序。以前的回答可能涵盖了大部分问题,特别是如果您的域名存在重定向问题

为了完全可移植并利用docker的所有可能性,我的建议是使用Nginx官方docker映像,使其成为唯一可从外部访问的映像(开放端口),并使用
--链接来管理Nginx容器与其他容器之间的连接

我在类似的情况下也这样做过,效果很好。下面是我对你的情况所做的尝试性翻译

启动共享容器时,无需指定任何外部端口:

docker run -d \
  -v ~/sharelatex_data:/var/lib/sharelatex \
  --name=sharelatex \
  sharelatex/sharelatex
您为shareLatex服务器准备了一个nginx conf文件,该文件放在
$HOME/nginx/conf
中,如下所示

upstream sharelatex {
     # this will refer to the name you pass as link to the nginx container
     server sharelatex; 
}

server {
        listen 80;
        server_name tools.sebastienreycoyrehourcq.fr;
        location  ^~ / {
              proxy_pass http://sharelatex/;
        }
}
然后使用适当的卷链接和容器链接启动nginx docker容器:

docker run -d --link sharelatex:sharelatex --name NginxMain -v $HOME/nginx/conf:/etc/nginx/sites-available -v -p 80:80 kekev76/nginx

ps:这是用我们自己的kekev76/nginx映像完成的,该映像在github和docker上是公开的,但您可以根据官方nginx映像调整原理。

感谢您的回答,使用nginx代理是否可以将生成的配置文件保存在卷中?基于
https://github.com/jwilder/nginx-proxy/blob/master/Procfile
docker cp:/etc/nginx/conf.d/default.conf nginx.conf
应该这样做。
upstream sharelatex {
     # this will refer to the name you pass as link to the nginx container
     server sharelatex; 
}

server {
        listen 80;
        server_name tools.sebastienreycoyrehourcq.fr;
        location  ^~ / {
              proxy_pass http://sharelatex/;
        }
}
docker run -d --link sharelatex:sharelatex --name NginxMain -v $HOME/nginx/conf:/etc/nginx/sites-available -v -p 80:80 kekev76/nginx