Jupyter 在 docker 容器中启动内核?
Jupyter starting a kernel in a docker container?
我想在不同内核之间轻松切换我的笔记本。一个用例是在tensorflow 2、2.2、2.3中快速测试一段代码,类似的用例还有很多。但是,这些天我更喜欢将我的环境定义为 docker,而不是不同的 (conda) 环境。
现在我知道您可以在容器中启动 jupyter,但这不是我想要的。我只想单击 Kernel > use kernel > TF 2.2 (docker)
,让 jupyter 连接到此容器中的内核 运行。
周围有这样的东西吗?我用过livy
通过ssh连接到远程spark内核,所以感觉应该可以。
完全披露:我是 Dockernel 的作者。
通过使用 Dockernel
将以下内容放入单独目录中名为 Dockerfile
的文件中。
FROM python:3.7-slim-buster
RUN pip install --upgrade pip ipython ipykernel
CMD python -m ipykernel_launcher -f $DOCKERNEL_CONNECTION_FILE
然后发出以下命令:
docker build --tag my-docker-image /path/to/the/dockerfile/dir
pip install dockernel
dockernel install my-docker-image
在 Jupyter 中创建新笔记本时,您现在应该会看到“my-docker-image”选项。
手动
不需要太多额外的东西就可以完成这种事情implementation/tooling,只需要一些手工工作:
- 使用以下
Dockerfile
:
FROM python:3.7-slim-buster
RUN pip install --upgrade pip ipython ipykernel
使用docker build --tag my-docker-image .
构建图像
为您的内核规范创建一个目录,例如~/.local/share/jupyter/kernels/docker_test
(%APPDATA%\jupyter\kernels\docker_test
在 Windows 上)
将以下内核规范放入您创建的目录中的 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"
}
Jupyter 现在应该能够使用上面指定的 docker 图像启动容器。
我想在不同内核之间轻松切换我的笔记本。一个用例是在tensorflow 2、2.2、2.3中快速测试一段代码,类似的用例还有很多。但是,这些天我更喜欢将我的环境定义为 docker,而不是不同的 (conda) 环境。
现在我知道您可以在容器中启动 jupyter,但这不是我想要的。我只想单击 Kernel > use kernel > TF 2.2 (docker)
,让 jupyter 连接到此容器中的内核 运行。
周围有这样的东西吗?我用过livy
通过ssh连接到远程spark内核,所以感觉应该可以。
完全披露:我是 Dockernel 的作者。
通过使用 Dockernel
将以下内容放入单独目录中名为 Dockerfile
的文件中。
FROM python:3.7-slim-buster
RUN pip install --upgrade pip ipython ipykernel
CMD python -m ipykernel_launcher -f $DOCKERNEL_CONNECTION_FILE
然后发出以下命令:
docker build --tag my-docker-image /path/to/the/dockerfile/dir
pip install dockernel
dockernel install my-docker-image
在 Jupyter 中创建新笔记本时,您现在应该会看到“my-docker-image”选项。
手动
不需要太多额外的东西就可以完成这种事情implementation/tooling,只需要一些手工工作:
- 使用以下
Dockerfile
:
FROM python:3.7-slim-buster
RUN pip install --upgrade pip ipython ipykernel
使用
构建图像docker build --tag my-docker-image .
为您的内核规范创建一个目录,例如
~/.local/share/jupyter/kernels/docker_test
(%APPDATA%\jupyter\kernels\docker_test
在 Windows 上)将以下内核规范放入您创建的目录中的
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"
}
Jupyter 现在应该能够使用上面指定的 docker 图像启动容器。