我正在尝试使用此存储库作为起点来部署JupyterHub:https://github.com/jupyterhub/jupyterhub-deploy-docker
好消息是,我能够成功部署JupyterHub,登录并开始为用户生成笔记本服务器。此外,这些笔记本计算机服务器按预期运行。
下一步是自定义笔记本图像,以更好地适应我的用例。为此,我修改了在“ singleuser”目录中找到的“ Dockerfile”。现在看起来像这样:
FROM jupyter/datascience-notebook
USER root
RUN python3 -m pip install --no-cache requests fastapi pydantic pytest six pymlconf authlib python-dotenv multiping ping3
再次启动JupyterHub之后,目标是使用ping3库尝试对我们实验室中的某些服务执行ping操作。但是,此操作失败,并显示如下所示的权限错误。
Jupyter Notebook中的代码:
from ping3 import ping, verbose_ping
ping('google.com', unit='ms')
错误消息:
---------------------------------------------------------------------------
PermissionError Traceback (most recent call last)
<ipython-input-1-3ca020a44cd6> in <module>
1 from ping3 import ping, verbose_ping
----> 2 ping('google.com', unit='ms')
/opt/conda/lib/python3.7/site-packages/ping3.py in ping(dest_addr, timeout, unit, src_addr, ttl, seq, size)
163 PingError: Any PingError will raise again if `ping3.EXCEPTIONS` is True.
164 """
--> 165 with socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP) as sock:
166 sock.setsockopt(socket.SOL_IP, socket.IP_TTL, ttl)
167 if src_addr:
/opt/conda/lib/python3.7/socket.py in __init__(self, family, type, proto, fileno)
149 if proto == -1:
150 proto = 0
--> 151 _socket.socket.__init__(self, family, type, proto, fileno)
152 self._io_refs = 0
153 self._closed = False
PermissionError: [Errno 1] Operation not permitted
非常感谢任何建议或指导,谢谢!
答案 0 :(得分:0)
它是一个 PermissionError
,这意味着您需要超级用户/管理员/root 的权限才能发出 ICMP ping 包。