2015-11-11 15 views
10

VPS'de apache veya nginx kullanan docker konteynerinin yönetiminde linux noob var.nginx/apache yönlendirmesi çıkış kapısının çıkış portu için vps'de

Ubuntu 15.04 + docker'ın önceden yüklenmiş görüntüsüyle OVH classic Vps (4go ram, 25Go SSD) kullanıyorum.

Docker kabının kurulumu gerçekten çok kolaydır ve benim durumumda, görüntüyü sharelatex görüntü sorunu olmadan kurarım.

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

Sitesi sorunsuz bu site çalışmalarını göstermek http://51.255.47.40:5000 limanında VPS IP erişilebilir.

Zaten çalıştığım, anlamıyorum, sunucuya gitmeye yapılandırılan ip vps (Webfaction panelinde Dış'a yönlendirilen 51.255.47.40) yapılandırılmış bir alt etki alanına (tools.sebastienreycoyrehourcq.fr) zaten sahibim.

51.255.47.40 numaralı bilgisayara bir apache sunucusu yüklüyorum, ancak en iyi seçenek muhtemelen bir docker imgesi olan nginx veya apache'yi yüklemek olabilir mi? Bana bu konuda tavsiyede bulunabilir misin? Ve bundan sonra, alt alanımla bağlantılı klasik 80 bağlantı noktası apache veya nginx bağlantı noktasında docker görüntüsünün 5000 bağlantı noktasına nasıl yönlendirebilirim? tools.sebastienreycoyrehourcq.fr için VIRTUAL_HOST seti ile sharelatex çalışan

cevap

4

Önceki yanıtlara uygulamaya erişebilir muhtemelen en kapsar Sorunlar, özellikle alan adınızın yönlendirme sorunları varsa.

Tam olarak taşınabilir olmak ve tüm docker olanaklarını kullanabilmek için, benim tavsiyem Nginx resmi docker görüntüsünü kullanmak ve onu dışarıdan (portların açılışıyla) erişilebilen tek adres haline getirmek ve --link Nginx konteynerleriniz ve diğer konteynerleriniz arasındaki bağlantıyı yönetmek için.

Bunu oldukça iyi çalışan benzer bir durumda yaptım. Aşağıda durumunuza yaptığım şeylerin geçici bir çevirisi.

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

Sen

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/; 
     } 
} 

You gibi görünecektir sen $HOME/nginx/conf yerleştirmek için shareLatex sunucusu için bir nginx conf dosyasını hazırlamak:

herhangi harici port belirtmeden payın lateks kabı başlatmak sonra nginx docker kabını uygun birim bağlantıları ve kap bağlantılarıyla başlatın:

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

ps: Bu, github ve docker üzerinde halka açık olan kendi evimizev76/nginx görüntüsü ile yapılmıştır, ancak ilkeyi resmi nginx görüntüsüne uyarlayabilirsiniz.

2

nginx-proxy (https://github.com/jwilder/nginx-proxy) ve daha sonra bu çalışma almak için yeterli olacaktır.

örn.

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 
+0

Nginx-proxy ile oluşturulan yapılandırma dosyasını bir cihaza kaydetmek mümkün mü? – reyman64

+0

https: // github.com/jwilder/nginx-proxy/blob/master/Procfile', 'docker cp temelli kapalı:/etc/nginx/conf.d/default.conf nginx .conf yapmalı. – palfrey

2

tools.sebastienreycoyrehourcq.fr düzgün yapılandırılmamış alt etki alanı takip eder. Çalışmamanın nedeni olan herhangi bir IP adresine çözüm getirmez.

Eğer alt alan yapılandırmak sonra bu komutla 80 numaralı bağlantı noktasında sharelatex konteyner çalıştırabilirsiniz:

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

Bu şekilde http://tools.sebastienreycoyrehourcq.fr