Roe*_*ant 5 python docker jupyter-notebook livy
我想在不同内核之间轻松切换我的笔记本。一个用例是在tensorflow 2、2.2、2.3中快速测试一段代码,类似的用例还有很多。但是,我现在更喜欢将我的环境定义为 docker,而不是不同的(conda)环境。
现在我知道您可以在容器中启动 jupyter,但这不是我想要的。我只想单击Kernel > use kernel > TF 2.2 (docker),让 jupyter 连接到在此容器中运行的内核。
周围有这样的东西吗?我曾经livy通过 ssh 连接到远程 Spark 内核,所以感觉这应该是可能的。
完全披露:我是 Dockernel 的作者。
将以下内容放在一个名为Dockerfile,的文件中,放在一个单独的目录中。
FROM python:3.7-slim-buster
RUN pip install --upgrade pip ipython ipykernel
CMD python -m ipykernel_launcher -f $DOCKERNEL_CONNECTION_FILE
Run Code Online (Sandbox Code Playgroud)
然后发出以下命令:
docker build --tag my-docker-image /path/to/the/dockerfile/dir
pip install dockernel
dockernel install my-docker-image
Run Code Online (Sandbox Code Playgroud)
在 Jupyter 中创建新笔记本时,您现在应该会看到“my-docker-image”选项。
可以在没有太多额外实现/工具的情况下完成这种事情,它只需要一些手动工作:
Dockerfile:FROM python:3.7-slim-buster
RUN pip install --upgrade pip ipython ipykernel
Run Code Online (Sandbox Code Playgroud)
使用构建图像 docker build --tag my-docker-image .
为您的 kernelspec 创建一个目录,例如~/.local/share/jupyter/kernels/docker_test(%APPDATA%\jupyter\kernels\docker_test在 Windows 上)
将以下 kernelspec 放入kernel.json您创建的目录中的文件中(Windows 用户可能需要稍作更改argv)
{
"argv": [
"/usr/bin/docker",
"run",
"--network=host",
"-v",
"{connection_file}:/connection-spec",
"my-docker-image",
"python",
"-m",
"ipykernel_launcher",
"-f",
"/connection-spec"
],
"display_name": "docker-test",
"language": "python"
}
Run Code Online (Sandbox Code Playgroud)
Jupyter 现在应该能够使用上面指定的 docker 镜像启动一个容器。
| 归档时间: |
|
| 查看次数: |
2247 次 |
| 最近记录: |