2014-12-04 6 views
11

Quindi, ho un codice Python in esecuzione all'interno di un contenitore Docker. Ho avviato il mio ambiente locale utilizzando lo script gcloud di Google. Sto visualizzando i registri dello stile di accesso di base e le informazioni sullo stato di integrità, ma non sono sicuro di come posso passare i messaggi di registro che sto scrivendo dalla mia app Python alla console. C'è un parametro che posso impostare per ottenere questo risultato con il mio script gcloud o c'è qualcosa che posso impostare nel Dockerfile che può aiutare?Come posso visualizzare l'output dall'applicazione Python in esecuzione all'interno del contenitore Docker?

+3

È possibile [allegare] (https://docs.docker.com/reference/commandline/cli/#attach) direttamente al contenitore in esecuzione oppure è possibile utilizzare [registri docker] (https: //docs.docker. com/riferimento/a riga di comando/cli/logs #). Inoltre puoi attaccarti quando avvii un container con [docker run -a] (https://docs.docker.com/reference/commandline/cli/#run). Spero che queste informazioni ti siano d'aiuto. –

+1

condividi il 'Dockerfile' out per ottenere più supporto. Dov'è il registro ora all'interno dei contenitori? Generalmente i log vengono stampati nella console (stdout/stderr) all'interno del contenitore, quindi è possibile utilizzare i "registri di docker" all'esterno. Puoi sempre usare il comando 'docker exec' per saltare dentro per controllare i log come l'app normale –

+0

Grazie per l'aiuto ragazzi. i "registri docker" erano ciò che stavo cercando. Penso che la parte che mi mancava fosse come ottenere gli ID del processo docker in esecuzione (finestra mobile ps), in modo che potessi inviarlo al comando logs. Se qualcuno di voi può scrivere la risposta, la contrassegnerò come corretta. – Brandon

risposta

17

Per Python per accedere sul vostro terminale/riga di comando/console, quando eseguito da un contenitore di finestra mobile, si dovrebbe avere questo set variabile nel docker-compose.yml

environment: 
    - PYTHONUNBUFFERED=0 

Questa è anche una valida soluzione se siete utilizzando print per eseguire il debug.

+3

Ha reso la mia giornata. Grazie. –

+1

Glad potrebbe essere d'aiuto :) – Sentient07

+0

Sto usando docker-compose e uno dei contenitori sta eseguendo Django. Nonostante i messaggi di "mange.py runserver" siano stati stampati (tutte le richieste GET e POST venivano visualizzate) i miei messaggi di stampa non sono stati visualizzati fino a quando non aggiungo questa variabile ambientale. Grazie !! – pitervergara

Problemi correlati