[英]How to save and edit a Jupyter notebook in a host directory using official Tensorflow docker container?
[英]Tensorflow on Docker: How to save the work on Jupyter notebook?
Docker和Tensorflow的新手并试用它们。 安装(在win10上,使用hyper-v驱动程序)运行良好,我可以运行
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).
我可以通过打开[docker host address]:8888从浏览器打开Jupyter笔记本。
但是,在完成一些工作(例如,创建新笔记本)后,当我通过Ctrl-C两次停止服务器时,所有新工作都将丢失。 也许我错过了一些基本的东西,所以让我把我不确定的东西放在这里:
谢谢你的帮助。
您希望将容器作为守护程序运行。 然后你可以使用docker stop
和docker start
容器并检索你的工作。
docker run -td -p 8888:8888 gcr.io/tensorflow/
使用-it
运行使容器具有交互性并在前台运行,这就是取消它时工作丢失的原因。 最佳实践并将其作为守护程序运行,因此您不必使用CTRL + C退出,而是可以让docker处理该状态。
您可以挂载当前主机文件夹以替换容器中的默认/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
我将Docker作为命名容器运行:
$ docker run -p 8888:8888 -d --name appu b.gcr.io/tensorflow-udacity/assignments
appu
是我给容器的名字。
-p
将端口号8888从Linux转发到Windows。
-d
使程序在后台运行,这样你就可以在控制台上获得$
prompt并继续使用其他任务(这就是所谓的'妖魔化',但不要被极客吓倒。这只是意味着'请在后台默默运行,然后把我的控制台给我!)当你想要停止容器时,请按名称提及
$ docker stop appu
下次要使用在先前会话中创建的所有文件返回同一容器时,再次启动容器appu:
$ docker start appu
第一次,在交互模式下将Docker作为命名容器运行。 这将为您提供与令牌的链接。 对于后续运行,请使用名称启动容器。 这是一个例子:
第一次运行:
$ docker run -p 8888:8888 -d --name <name> gcr.io/tensorflow/tensorflow
需要时,使用ctrl-C停止第一次运行。
后续运行:
$ docker start <name>
这将在后台模式下自动运行docker。
要停止容器:
$ docker stop <name>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.