2015-05-15 18 views
7

Recentemente ho tirato un'immagine nginx:Impossibile utilizzare -lt durante l'esecuzione Nginx Docker o gatto registra

docker pull nginx 

posso correre con successo e andare a http://server_name e vedere la pagina "Welcome to Nginx":

docker run -d -p 80:80 nginx 

Ma poi quando provo a controllare i registri:

docker exec 6c79549e3eb4f6e5fc06f049b67814ac4560ce2cdd7cc6ae84b44b5ae09a9a05 cat /var/log/nginx/access.log 

appende appena ed emette nulla. Lo stesso con il log degli errori. Ora se creo un file test.txt in quella stessa cartella e uso docker exec per (visualizzare) cat il file, eseguo senza problemi o appeso.

Anche se cerco di eseguirlo in modalità interattiva, si blocca solo:

docker run -i -t -p 80:80 nginx 

Ancora una volta il terminale si blocca sulla riga successiva senza far nulla, ma sembra funzionare perché posso accedere al nginx benvenuto pagina.

Davvero confuso su cosa sta succedendo, ho provato a cercare questo problema, ma finora non ho trovato nessuna soluzione. Senza essere in grado di visualizzare i registri, sarà molto difficile eseguire il debug :) Inoltre, i registri di accesso non dovrebbero essere spostati su stdout nel contenitore nginx poiché i contenitori della finestra mobile della convenzione eseguono il log in stdout?

+0

Il file '/ var/log/nginx/access.log' esiste nel contenitore? Prova ad entrare nel contenitore ed eseguire i comandi in modo interattivo con 'docker run -i -t -p 80:80 nginx/bin/bash' –

+0

Sì, il file access.log è lì root @ ip-10-232-1 -195: ~/docker-registry/dockerfiles # docker exec d24a412224684434dfe9cf950015619ca4fc397e235602649591e2e5c46f4194 ls /var/log/nginx/access.log /var/log/nginx/access.log – alexfvolk

+0

Esegui 'ls -al' invece di solo' ls' e pubblicare l'output. –

risposta

10

Se si va all'interno del contenitore docker exec -it <container-id> /bin/bash e verificate la posizione di registro ls -la /var/log/nginx/, si vedrà il seguente output: lrwxrwxrwx 1 root root 11 Apr 30 23:05 access.log -> /dev/stdout lrwxrwxrwx 1 root root 11 Apr 30 23:05 error.log -> /dev/stderr Chiaramente, i registri sono scritti in stdout. Puoi anche provare a fare cat access.log all'interno del contenitore e ancora non mostra nulla.
Ora, il modo giusto per ottenere i registri sta andando fuori dal contenitore e facendo docker logs <container-id> Quindi, vedresti i tuoi registri. Spero che questo aiuti!

+1

Grazie :) Vedo l'output ora, penso che sia stato un errore da parte mia, ho continuato a utilizzare l'indirizzo IP sbagliato. – alexfvolk