Использование функций системного уровня в контейнере сервера ноутбука - PullRequest
1 голос
/ 08 июля 2019

Я пытаюсь развернуть JupyterHub, используя этот репозиторий в качестве отправной точки: https://github.com/jupyterhub/jupyterhub-deploy-docker

Хорошая новость заключается в том, что я могу успешно развернуть JupyterHub, войти в систему и запустить серверы ноутбуков.для пользователей.Кроме того, эти ноутбуки работают нормально.

Следующим шагом была настройка образа ноутбука, чтобы он лучше подходил моему варианту использования.Для этого я изменил 'Dockerfile', находящийся внутри каталога 'singleuser'.Теперь это выглядит так:

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, чтобы попытаться проверить работу некоторых служб в нашей лаборатории.Однако это не удается с ошибкой разрешения, как показано ниже.

Код в блокноте Jupyter:

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

Любые предложения или рекомендации оченьоценил, спасибо!

...