2015-11-11 8 views
10

Sono un noob linux nell'amministratore del contenitore docker che utilizza apache o nginx su VPS.reindirizzamento nginx/apache per la porta di uscita sul contenitore docker su vps

Uso un OVH classic Vps (4go ram, 25Go SSD) con l'immagine già installata di ubuntu 15.04 + docker.

L'installazione del contenitore docker è davvero semplice e nel mio caso installo senza problemi l'immagine sharelatex.

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

sito è accessibile sul IP del VPS a http://51.255.47.40:5000 porto mostrano che il lavoro del sito senza alcun problema.

Ho già un sottodominio (tools.sebastienreycoyrehourcq.fr) configurato per andare sul server ip vps (51.255.47.40 indirizzato a External nel pannello webfaction), non funziona, non capisco perché.

Installare un server Apache su 51.255.47.40, ma suppongo che l'opzione migliore sia probabilmente quella di installare un'immagine docker di nginx o apache? Potete consigliarmi su questo punto? E dopo, come posso reindirizzare alla porta 5000 dell'immagine docker su una porta 80 classica di apache o nginx collegata al mio sottodominio?

risposta

4

risposte precedenti probabilmente copre la maggior parte del problemi, specialmente se ci fossero problemi di reindirizzamento del tuo nome di dominio.

Per essere completamente portatile e utilizzare tutte le possibilità di docker, la mia raccomandazione sarebbe quella di utilizzare l'immagine originale di docker Nginx e renderla l'unica accessibile dall'esterno (con l'apertura delle porte) e utilizzare lo --link per gestire la connettività tra i contenitori Nginx e gli altri contenitori.

L'ho fatto in una situazione simile che funziona piuttosto bene. Di seguito è riportata una traduzione provvisoria di ciò che ho fatto alla tua situazione.

Si avvia il contenitore di lattice quota senza specificare qualsiasi porta esterna:

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

Si prepara un file conf nginx per il server shareLatex che si inserisce nel $HOME/nginx/conf che sarà simile

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

È quindi avviare il contenitore docker nginx con i collegamenti volume e i collegamenti del contenitore appropriati:

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

ps: questo è stato fatto con la nostra immagine kekev76/nginx che è pubblica su github e finestra mobile, ma è possibile adattare il principio all'immagine ufficiale di nginx.

2

nginx-proxy (https://github.com/jwilder/nginx-proxy) e quindi eseguire sharelatex con VIRTUAL_HOST set per tools.sebastienreycoyrehourcq.fr dovrebbe essere sufficiente per ottenere questo lavoro.

ad es.

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy 

seguito da

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

Grazie per la risposta, con nginx-proxy è possibile salvare il file di configurazione generato in un volume? – reyman64

+0

Basato su 'https: // github.com/jwilder/nginx-proxy/blob/master/Procfile',' finestra mobile cp :/etc/nginx/conf.d/default.conf nginx .conf' dovrebbe farlo. – palfrey

2

Il sottodominio tools.sebastienreycoyrehourcq.fr non è configurato correttamente. Non risolve alcun indirizzo IP, motivo per cui non funziona.

Dopo aver configurato il sottodominio, è possibile eseguire il contenitore sharelatex sulla porta 80 con questo comando:

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

questo modo è possibile accedere all'applicazione in http://tools.sebastienreycoyrehourcq.fr

Problemi correlati