威联通 docker 安装思源笔记(通用教程)

这是旧版本的部署方式,实测当前的 3.0.15 版本也可以用相同的方式部署。

1.部署容器

v2.11.4 版本在威联通上部署

这个版本是我从今年年初一直用到现在的版本,没遇到过任何问题,个人感觉没有必要升级。

b3log/siyuan:v2.11.4

拉取镜像后,创建容器。这里我使用的是最新的 container station 3

image

先配置容器的端口,主机端口设置为一个未被使用的端口即可,重启策略改成始终重启。

image

添加存储映射,在 nas 上新建一个文件夹来存放思源笔记的数据。

/Public/docker/data/synote/data:/home/siyuan/sy

image

然后是修改启动命令,在命令中选择覆盖,然后键入如下内容。如果你的 docker 需要外网访问,则一定要把密码设置的复杂一些。

--workspace=/home/siyuan/sy --lang=zh_CN --accessAuthCode=你的密码

image

然后创建容器就可以了。

创建完毕容器一定要去检查日志,看工作空间有没有问题。

image

包括检查本地的映射路径中是否有对应的文件,如果没有下面的这些文件,一定要去确认你的 docker 路径映射有没有问题!

image

显示下面的内容,就是部署成功了。

image

使用 docker cli 命令部署

使用 docker 命令部署参考如下设置,最新版本 3.0.15 也是一样的命令,我已经测试过了,修改镜像的 tag 就可以了。其中你可以修改的是 -v 选项冒号左侧的宿主机目录,以及 -p 选项后冒号左侧的宿主机端口号。

docker run -d \
    --name siyuan \
    -v 你需要绑定的宿主机目录:/home/siyuan/sy \
    -p 10000:6806 \
    --restart=always \
    b3log/siyuan:v2.11.4 \
    --workspace=/home/siyuan/sy \
    --lang=zh_CN \
    --accessAuthCode=123456

部署完毕后,一定要检查你绑定的宿主机目录下是否有文件!没有文件是有问题的!

❯ ls -l data 
total 12K
drwxr-xr-x  3 wsl wsl 4.0K May 25 18:23 conf
drwxr-xr-x 11 wsl wsl 4.0K May 25 18:23 data
drwxr-xr-x  4 wsl wsl 4.0K May 25 18:21 temp

2.如何设置镜像源?

contianer station3 如何添加镜像源?

默认情况下 dockerhub 的连通性并不是很好,可能没有办法 pull 镜像,所以需要设置 docker 的镜像源。

设置方法如下。

image

点击添加存储库,提供商选择其他,然后 URL 是填镜像源的名称。

推荐使用南京大学的镜像 https://docker.nju.edu.cn,速度不错。

image

填好了之后点击测试链接,成功就 OK 了,点击应用。

image

设置了之后,在映像中就可以使用这个镜像源来 pull 容器了。

image

image

不过没有办法通过镜像源来搜容器,自带的搜索只能使用 dockerhub 来 pull 镜像。每次需要镜像的时候,都得去找容器的镜像名字是什么,还是有点不方便。

docker 命令行如何添加镜像源?

docker 的命令行需要修改系统的配置来设置镜像源,对应的文件是 /etc/docker/daemon.json

sudo vim /etc/docker/daemon.json

使用 nano 编辑器或者 vim 编辑器编辑这个文件,复制粘贴如下内容

{
 	"registry-mirrors": ["https://docker.nju.edu.cn"]
}

随后重启 docker 服务就可以了,如果无法重启 docker 服务,也可以直接重启整个主机。

sudo systemctl restart docker

3.部署思源后可能遇到的问题

1.工作空间不一致问题

在下面的这个命令中,我们将容器内的目录--workspace 的选项都设置为了 /home/siyuan/sy,一定要确认二者的设置是一致的,否则思源会因为找不到容器内的目录,而采用默认的工作空间.

docker run -d \
    --name siyuan \
    -v 你需要绑定的宿主机目录:/home/siyuan/sy \
    -p 10000:6806 \
    --restart=always \
    b3log/siyuan:v2.11.4 \
    --workspace=/home/siyuan/sy \
    --lang=zh_CN \
    --accessAuthCode=123456

对于不太了解 docker 机制的用户而言,此时删除了该容器,你的数据就很难找回来了!!!! 这也是为什么前文一直强调,创建了容器后,一定要去检查自己的本地路径中是否有对应的文件!

2.权限问题

思源容器是使用 1000 用户来创建和访问文件的,所以如果你映射的宿主机路径无法被 1000 用户组访问,此时日志中就会出现 Permission Deny 字眼,代表思源没有办法在你映射的工作空间中创建和访问文件。你可以通过 docker logs 命令查看容器的日志。

docker logs 思源容器名字

解决办法有几种:

  1. 不要使用 root 用户来操作 docker 命令,而是使用一个子用户 +sudo 的方式操作 docker 命令,因为子用户创建出来的文件夹权限是 ok 的
  2. 手动使用 chown 和 chgrp 命令将创建出来的文件夹用户组改成 1000。

针对第二点做个说明,chown 命令是修改文件夹的所属用户,chgrp 命令是修改文件夹的所属组。-R 选项代表同时修改这个文件夹内部的子文件夹权限。

chown -R 1000 文件夹
chgrp -R 1000 文件夹

写在最后

不管你采用什么方式部署的容器,请一定要确认你映射的本地路径中有对应的文件!数据无价哦!

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    19578 引用 • 74567 回帖
1 操作
muxue 在 2024-06-13 22:08:18 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...