nginx/apache vps 上 docker 容器输出端口的重定向
nginx/apache redirection for output port on docker container on vps
我是 docker 容器管理员中的 linux 菜鸟,在 VPS 上使用 apache 或 nginx。
我使用 OVH 经典 Vps(4go ram,25Go SSD)和已安装的映像 ubuntu 15.04 + docker。
docker 容器的安装非常简单,在我的例子中,我安装图像 sharelatex.
没有问题
docker run -d \
-v ~/sharelatex_data:/var/lib/sharelatex \
-p 5000:80 \
--name=sharelatex \
sharelatex/sharelatex
站点可以通过 VPS 的 IP 地址在 http://51.255.47.40:5000
端口访问表明站点工作没有任何问题。
我已经有一个子域 (tools.sebastienreycoyrehourcq.fr) 配置为在服务器 ip vps 上运行(51.255.47.40
在 webfaction 面板中路由到外部),不工作,不要明白为什么。
我在 51.255.47.40
上安装了一个 apache 服务器,但我想最好的选择可能是安装 nginx 或 apache 的 docker 映像?在这一点上你能给我建议吗?在那之后,我如何重定向到链接到我的子域的 apache 或 nginx 的经典 80 端口上的 docker 图像的 5000
端口?
nginx-proxy
(https://github.com/jwilder/nginx-proxy) 然后 运行 sharelatex 与 VIRTUAL_HOST
设置为 tools.sebastienreycoyrehourcq.fr 应该足以让这个工作。
例如
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
接着是
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 图像并使其成为唯一可从外部访问的图像(使用端口的开放)并使用 --link
来管理 Nginx 容器和其他容器之间的连接。
我在类似的情况下做过,效果很好。以下是我对你的情况所做的初步翻译。
您在未指定任何外部端口的情况下启动共享乳胶容器:
docker run -d \
-v ~/sharelatex_data:/var/lib/sharelatex \
--name=sharelatex \
sharelatex/sharelatex
您为您放置在 $HOME/nginx/conf
中的 shareLatex 服务器准备了一个 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 图像完成的,即 public 在 github 和 docker 上,但您可以调整原理以适应官方 nginx 镜像。
我是 docker 容器管理员中的 linux 菜鸟,在 VPS 上使用 apache 或 nginx。
我使用 OVH 经典 Vps(4go ram,25Go SSD)和已安装的映像 ubuntu 15.04 + docker。
docker 容器的安装非常简单,在我的例子中,我安装图像 sharelatex.
没有问题docker run -d \
-v ~/sharelatex_data:/var/lib/sharelatex \
-p 5000:80 \
--name=sharelatex \
sharelatex/sharelatex
站点可以通过 VPS 的 IP 地址在 http://51.255.47.40:5000
端口访问表明站点工作没有任何问题。
我已经有一个子域 (tools.sebastienreycoyrehourcq.fr) 配置为在服务器 ip vps 上运行(51.255.47.40
在 webfaction 面板中路由到外部),不工作,不要明白为什么。
我在 51.255.47.40
上安装了一个 apache 服务器,但我想最好的选择可能是安装 nginx 或 apache 的 docker 映像?在这一点上你能给我建议吗?在那之后,我如何重定向到链接到我的子域的 apache 或 nginx 的经典 80 端口上的 docker 图像的 5000
端口?
nginx-proxy
(https://github.com/jwilder/nginx-proxy) 然后 运行 sharelatex 与 VIRTUAL_HOST
设置为 tools.sebastienreycoyrehourcq.fr 应该足以让这个工作。
例如
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
接着是
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 图像并使其成为唯一可从外部访问的图像(使用端口的开放)并使用 --link
来管理 Nginx 容器和其他容器之间的连接。
我在类似的情况下做过,效果很好。以下是我对你的情况所做的初步翻译。
您在未指定任何外部端口的情况下启动共享乳胶容器:
docker run -d \
-v ~/sharelatex_data:/var/lib/sharelatex \
--name=sharelatex \
sharelatex/sharelatex
您为您放置在 $HOME/nginx/conf
中的 shareLatex 服务器准备了一个 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 图像完成的,即 public 在 github 和 docker 上,但您可以调整原理以适应官方 nginx 镜像。