2016-04-20 47 views
5

Docker和Tensorflow的新手都在尝试。安装(win10,使用Hyper-V驱动程序)都很好,我可以运行Docker上的Tensorflow:如何将工作保存在Jupyter笔记本上?

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

,并得到输出是这样的:

[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). 

,我可以通过打开[泊坞窗主机从浏览器中打开Jupyter笔记本地址]:8888。

但是,在做了一些工作(例如创建新笔记本)之后,当我通过Ctrl-C两次停止服务器时,所有新工作都将丢失。也许我错过了一些基本的东西,所以让我把我不知道的东西放在这里:

  1. 我应该不停止服务器?
  2. 我在重新启动时使用相同的“码头运行”命令。那是对的吗?

感谢您的帮助。

回答

6

您希望将容器作为守护程序运行。然后你可以用docker stopdocker start这个容器找回你的工作。

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

-it运行,使容器的互动和运行这就是为什么当您取消它的工作将丢失的前景。最佳实践并将其作为守护进程运行,以便您不必按CTRL + C即可退出,而是让Docker处理状态。

+3

请您详细说明答案。例如,有关“如果docker作为守护程序运行,如何维护状态”以及“如何将其作为守护程序运行”的信息将很有用。虽然码头启动启动容器,如何保存容器? –

+0

这是一个非常广泛的问题来回答。我建议你首先阅读https://docs.docker.com/上的文档,然后发布任何具体问题或问题,你已经回到了stackoverflow。 –

3

我跑码头工人为命名容器:

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

“亚太邮联”是我给我的容器名称。 -p将端口号8888从Linux转发到Windows。 -d让程序在后台运行,这样你就可以在控制台上获得$提示符,并且可以继续处理其他任务(这就是所谓的“恶魔化”,但不要被怪才吓倒。意思是“请在后台静默运行,并给我回我的控制台”!) 当你想停止容器,提到它的名字

$ docker stop appu 

下一次,你想获得相同的容器中备用,用您在早期会话中创建的所有文件,再次启动容器appu:

$ docker start appu 
1

您可以mount当前主机文件夹以替换容器中的默认/notebooks文件夹。以下是一个示例:

$ 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