Jupyter Lab Docker容器中jovyan用户密码及重启jupyter-server服务的问题
Jupyter Lab Docker容器中jovyan用户密码及重启jupyter-server服务的问题
嗨,我来帮你搞定这个问题!你遇到的情况其实挺常见的,咱们一步步来解决:
首先说jovyan用户的sudo密码问题
这个镜像里的jovyan用户默认是没设置密码的,所以当你输入sudo命令时会被要求输入密码却不知道。如果确实需要用sudo的话,你可以先给jovyan设置一个密码:
在bash终端里输入:
passwd jovyan
然后按照提示输入你想设置的密码(输入时不会显示字符,正常输入就行),确认一遍后,下次再用sudo就可以用这个密码了。
不过其实你根本不需要用sudo来重启jupyter服务,因为jovyan就是运行jupyter的用户,完全有权限自己管理这个进程,下面给你几个更合适的方法:
不用sudo的jupyter服务重启方法
方法一:发送HUP信号让服务重载配置
这是最温和的方式,不需要完全停止服务:
- 先找到jupyter的进程ID,在终端输入:
ps aux | grep jupyter
你会看到类似这样的输出,第二列的数字就是PID:
jovyan 1 0.0 0.0 4340 1328 ? Ss 09:00 0:00 tini -- start.sh jupyter lab jovyan 7 0.3 8.4 123456 76543 ? Sl 09:00 0:05 jupyter lab --ip=0.0.0.0 --port=8888
- 找到
jupyter lab或者jupyter-notebook那一行的PID,然后发送HUP信号:
kill -HUP <你的PID数字>
这个命令会让jupyter自动重新加载配置文件,不用重启整个服务,非常方便。
方法二:用jupyter自带的重启命令
如果你用的是较新的jupyter版本(这个镜像里的版本通常都比较新),可以直接运行:
jupyter server restart
这个命令会自动找到正在运行的jupyter server并重启它,加载新的配置,全程不需要sudo,简单粗暴。
方法三:停止进程后重新启动
如果上面两种方法都不行,那就直接停止再启动:
- 先杀掉所有jupyter进程:
pkill jupyter
- 然后重新启动jupyter服务,命令和容器启动时的一致,这个镜像默认是:
jupyter lab --ip=0.0.0.0 --port=8888
为什么你找到的那个命令没用?
你看到的sudo initctl restart jupyter-server是针对用upstart管理服务的系统,但jupyter/datascience-notebook这个Docker镜像里根本没装upstart,而是直接用jovyan用户启动jupyter进程,所以那个命令在这个容器里完全不适用哦。
备注:内容来源于stack exchange,提问作者Moctar Diallo
相关产品推荐
相关产品推荐

