docker安装黑群晖系统 黑群晖docker下载不动_为什么jupyter少了一行运行不了


最近用 Python 写了一个爬虫在网上搜集资料。因为每次都要遍历几万了网页,完整运行一次灰常耗时。

今天偶然瞥见角落里的群晖,突发奇想,反正文件服务器24小时开着,能不能把简单的爬虫任务交给它呢?我习惯使用 Jupyter Notebook 运行 Python 脚本,首先要解决的自然就是给群辉安装 Jupyter Notebook。

网上搜索一通之后发现前辈们的思路主要有两种:一种是直接安装到群辉系统中,一个是通过 docker 加载专门的镜像。我个人偏向于后一种思路,即把单独的功能做成虚拟机的形式,各自独立的运行在服务器上。万一一个手滑玩脱了,虚拟机最多删了重新下载一次,服务器系统挂了可就凉凉了。


docker安装黑群晖系统 黑群晖docker下载不动_docker安装黑群晖系统_02


群辉上 docker 可以直接从应用中心下载安装,灰常之方便。

开启 docker,进入 Registery,搜索 jupyter,然后勇敢的面对选择恐惧症,居然有111页的结果。。。当然我关心的主要是排名第一的datascience-notebook。这个镜像大概2GB,最后解压完大概6GB。 趁着下载的时候,我们继续为镜像容器的设置做准备工作。


docker安装黑群晖系统 黑群晖docker下载不动_为什么jupyter少了一行运行不了_03


尽管 Jupyter 会运行在一个与外部相对隔绝的环境,我还是需要文件的输入输出,或者保存程序脚本以防容器崩溃把所有的文件都连着带仙游了。在控制面板中创建一个新的共享文件夹,取一个毫无想象力的名字,比如 jupyter,并且将读写权限交给本地普通用户组,确保镜像容器可以正常访问。按照网上的帖子,有前辈仅向特定用户授予读写权限,以确保文件的安全。但是照着我尝试了很多次都不成功,Jupyter Notebook 完全无法访问这个文件夹。这方面就算在“未来研究方向”部分吧。


docker安装黑群晖系统 黑群晖docker下载不动_用户名_04


还是在控制面板,前往终端选项卡,确认已经开启 ssh。在电脑上从命令行登陆群辉,并打开 /etc/passwd 文件。大概长这个样子:


docker安装黑群晖系统 黑群晖docker下载不动_为什么jupyter少了一行运行不了_05


这个文件里记录了当前所有用户名的账户 ID 和用户组 ID,找到你常用的用户名并记录下用户名后的两个数字。

最后我们要为 Jupyter 选个密码。由于密码在初始化的时候要以 sha1 加密的形式输入,我们可以在网上随便找一个计算 sha1 的网站,把自己的密码换算一下。

好啦,准备工作完成!如果你网速给力的话,Docker 镜像应该已经准备好了。回到 ssh 命令行输入下面这一长串,注意是都在一行里:

sudo /var/packages/Docker/target/usr/bin/docker run --name 'jupyter(这不是容器的名字)' -u root -it -p 8888(才不要侦听这个端口):8888 -e NB_UID=1026(听说这不是用户名后面的第一个数字) -e NB_GID=100(前面才是用户名后面的第二个数字) -v /volume1/jupyter(脚本没有保存在这个文件夹):/home/jovyan/work jupyter/datascience-notebook start-notebook.sh --NotebookApp.password='sha1:7C4A8D09CA3762AF61E59520943DC26494F8941B(才没有设置神马密码)'

经过初始化,以后镜像的开关就可以直接通过服务器网页中的 Docker App 进行了。如果没有其他需要的话,别忘了把 ssh 关掉。

搞定,收工。