2016-04-20 9 views
5

Principiante sia per Docker che Tensorflow e provandoli. Installazione (su win10, utilizzando Hyper-V autista) è andato bene e posso correreTensorflow on Docker: come salvare il lavoro sul notebook Jupyter?

docker run -p 8888:8888 -it gcr.io/tensorflow/tensorflow 

e ottenere output come questo:

[I 23:01:01.188 NotebookApp]←(B Serving notebooks from local directory: /notebooks 
[I 23:01:01.189 NotebookApp]←(B 0 active kernels 
[I 23:01:01.189 NotebookApp]←(B The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/ 
[I 23:01:01.189 NotebookApp]←(B Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). 

e posso aprire Jupyter notebook dal browser aprendo [host finestra mobile indirizzo]: 8888.

Tuttavia, dopo aver lavorato (ad esempio, creando un nuovo blocco note), quando interrompo il server Ctrl-C due volte, tutti i nuovi lavori vengono persi. Forse mi manca qualcosa di base, quindi lascia che metta quello che non sono sicuro qui:

  1. Sono supposto che non si arresti il ​​server?
  2. Sto riavviando lo stesso comando "docker run". È corretto?

Grazie per il vostro aiuto.

risposta

6

Si desidera eseguire il contenitore come daemon. Quindi puoi docker stop e docker start il contenitore e recuperare il tuo lavoro.

docker run -td -p 8888:8888 gcr.io/tensorflow/

Correndo con -it rende il contenitore interattivo ed eseguire in primo piano, che è il motivo per cui il lavoro si perde quando si annulla. Best practice ed eseguirlo come un demone in modo da non dover CTRL + C per uscire e può invece lasciare che il docker gestisca lo stato.

+3

Potete approfondire la risposta per favore. Ad esempio, le informazioni su "in che modo la finestra mobile manterrà lo stato se viene eseguito come un demone" e "come può essere eseguito come un demone" sarà utile. All'avvio della finestra mobile avvia il contenitore, come faccio a salvare il contenitore? –

+0

questa è una domanda molto ampia a cui rispondere. Ti suggerirei di iniziare leggendo i documenti su https://docs.docker.com/ e poi postando eventuali domande o problemi specifici su StackOverflow. –

3

corro Docker come contenitore di nome:

$ docker run -p 8888:8888 -d --name appu b.gcr.io/tensorflow-udacity/assignments 

'appu' è il nome che ho dato al mio contenitore. -p inoltra il numero di porta 8888 da Linux a Windows. -d esegue il programma in background, in modo da ottenere il prompt $ sulla tua console e continuare a lavorare con altre attività (questo è ciò che viene chiamato 'demonizzante', ma non lasciarti intimidire dai geek. significa 'si prega di eseguire in background, e ridammi la mia console'!) Quando si vuole fermare il contenitore, menzionano per nome

$ docker stop appu 

la prossima volta che si desidera ottenere lo stesso contenitore posteriore, con tutti i file creati nella sessione precedente, avviare nuovamente il contenitore app:

$ docker start appu 
1

È possibile mount cartella host corrente per sostituire la cartella predefinita /notebooks nel contenitore. Ecco un esempio:

$ docker run -p 8888:8888 -v `pwd`:/notebooks -it gcr.io/tensorflow/tensorflow 
[I 02:34:49.393 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret 
[W 02:34:49.411 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended. 
[I 02:34:49.420 NotebookApp] Serving notebooks from local directory: /notebooks 
[I 02:34:49.421 NotebookApp] 0 active kernels 
[I 02:34:49.421 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/?token=b9da5de7f61d6a968dc07e55c6157606a4f2f378cd764a91 
[I 02:34:49.421 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). 
[C 02:34:49.422 NotebookApp] 

    Copy/paste this URL into your browser when you connect for the first time, 
    to login with a token: 
     http://localhost:8888/?token=b9da5de7f61d6a968dc07e55c6157606a4f2f378cd764a91 
Problemi correlati