在VS Code中选择Docker/WSL环境下的Jupyter内核
解决WSL中Docker容器Jupyter内核无法被VS Code识别的问题
方法一:直接让VS Code连接Docker容器
这是最直观的解决方案,让VS Code直接附着到容器环境中操作:
- 确保VS Code已安装「Docker」和「Remote - Containers」扩展
- 打开命令面板(
Ctrl+Shift+P),输入「Remote-Containers: Attach to Running Container」 - 在弹出的容器列表中选中你的Jupyter容器,VS Code会重启并连接到容器内部
- 此时打开Jupyter Notebook,即可直接使用容器内的Python内核
方法二:同步容器内核配置到WSL环境
如果希望在WSL的VS Code会话中直接调用容器内核,可通过挂载目录同步配置:
- 在WSL终端中查看本地Jupyter内核配置目录:
常见路径为jupyter kernelspec list~/.local/share/jupyter/kernels或/usr/share/jupyter/kernels - 启动容器时添加挂载参数,将WSL的内核目录映射到容器内:
docker run -d -p 8888:8888 -v ~/.local/share/jupyter/kernels:/container-kernels your-image-name - 进入容器内部,将容器内的Python内核配置复制到挂载目录:
docker exec -it your-container-name bash cp -r /usr/local/share/jupyter/kernels/python3 /container-kernels/ - 修改复制后的
kernel.json文件,把其中的python执行路径改为容器内的实际路径(比如/usr/local/bin/python) - 重启VS Code的WSL连接,刷新Jupyter内核列表即可看到容器内核
方法三:通过端口映射连接容器内的Jupyter服务
若仅需使用Jupyter Notebook功能,可直接通过端口访问容器服务:
- 启动容器时指定端口映射:
docker run -d -p 8888:8888 your-image-name - 在容器内启动Jupyter并允许外部访问:
jupyter notebook --ip=0.0.0.0 --allow-root --no-browser - 复制终端输出的带token访问链接,在VS Code的Jupyter面板中选择「Existing Server」,粘贴链接即可连接到容器内核
内容的提问来源于stack exchange,提问作者Luckasino
相关产品推荐
相关产品推荐

