在Docker中运行Perl 6笔记本
在Jupyter笔记本中运行Perl 6内核将会很棒。
我想在Docker容器中运行Perl 6笔记本 ,并在我的Web浏览器中访问它。 为此,我创build了这个docker图像 。
创buildDocker镜像的代码是:
FROM sumdoc/exper2 RUN apt-get update \ && apt-get install -y ca-certificates python3-pip && pip3 install jupyter notebook \ && zef install Jupyter::Kernel --force-test ENV TINI_VERSION v0.6.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /usr/bin/tini RUN chmod +x /usr/bin/tini ENTRYPOINT ["/usr/bin/tini", "--"] EXPOSE 8888 CMD ["jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0"]
我在Windows 10 64 bit
和我的docker的IP地址是192.168.99.100
。
当我试图运行这个代码的容器:
docker run -it -p 8888:8888 sumdoc/perl-6-notebook
在dockerterminal
我得到这个错误:
$ docker run -it -p 8888:8888 sumdoc/perl-6-notebook [I 14:26:43.598 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret Traceback (most recent call last): File "/usr/local/bin/jupyter-notebook", line 11, in <module> sys.exit(main()) File "/usr/local/lib/python3.5/dist-packages/jupyter_core/application.py", line 267, in launch_instance return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs) File "/usr/local/lib/python3.5/dist-packages/traitlets/config/application.py", line 657, in launch_instance app.initialize(argv) File "<decorator-gen-7>", line 2, in initialize File "/usr/local/lib/python3.5/dist-packages/traitlets/config/application.py", line 87, in catch_config_error return method(app, *args, **kwargs) File "/usr/local/lib/python3.5/dist-packages/notebook/notebookapp.py", line 1296, in initialize self.init_webapp() File "/usr/local/lib/python3.5/dist-packages/notebook/notebookapp.py", line 1120, in init_webapp self.http_server.listen(port, self.ip) File "/usr/local/lib/python3.5/dist-packages/tornado/tcpserver.py", line 142, in listen sockets = bind_sockets(port, address=address) File "/usr/local/lib/python3.5/dist-packages/tornado/netutil.py", line 197, in bind_sockets sock.bind(sockaddr) OSError: [Errno 99] Cannot assign requested address
任何帮助?
您需要在Dockerfile的CMD中添加--allow-root
。 你也需要在你的dockerfile中把内核和jupyter连接起来
jupyter-kernel.p6 --generate-config
一旦你这样做,你将能够看到docker文件。 我也注意到你的图片尺寸是非常大的,你应该尝试find一个更好的jupyter的基本形象,而不是你有。
有关安装内核的更多细节,请参阅下面的链接
https://jupyter.readthedocs.io/en/latest/install-kernel.html
- 如何设置从docker-hub到AWS ECS的连续部署?
- 我怎样才能检查什么时候是docker的形象拉?
- Jenkins继续以root身份运行slave操作
- 允许通过docker-machine运行的容器与父OSX系统上的Mysql或XDEBUG端口连接,而不使用OSX DHCP分配的IP地址?
- 如何从Docker容器访问SQL Server?
- Docker-image-as-executable:我应该在CMD还是ENTRYPOINT中执行?
- 如何将一个参数从docker-compose传递到在docker镜像中运行的服务?
- Docker下载Google的TensorFlow问题
- 使用RUN的结果来设置一个variables