类别:Linux / 日期:2025-06-28 / 浏览:367 / 评论:0

一、环境:甲骨文的服务器:

OS: Ubuntu 22.04.5 LTS x86_64  --安装minimal版

Host: KVM/QEMU (Standard PC (i440FX + PIIX, 199 

Kernel: 6.8.0-1027-oracle 

CPU: AMD EPYC 7551 (2) @ 1.996GHz  --1核心

GPU: 00:02.0 Vendor 1234 Device 1111 

Memory: 242MiB / 956MiB  --1G内存

由于使用的系统默认没安装虚拟内存swap,后期从硬盘划分2G作为虚拟内存

image.png

二、安装docker

不在这篇讨论,略。

三、拉取思源镜像

由于国内限制,有条件的先连接到外网,记得设为全局模式连接。

docker pull b3log/siyuan:latest

lastest代表最新版本

检查镜像

image.png

四、部署容器

以下是官方的要求说明:

-------------------------------------------------------------

使用 docker run b3log/siyuan 运行容器时,请带入以下参数:

  • --workspace:指定工作空间文件夹路径,在宿主机上通过 -v 挂载到容器中

  • --accessAuthCode:指定访问授权码

更多的参数可参考 --help。下面是一条启动命令示例:

docker run -d \
  -v workspace_dir_host:workspace_dir_container \
  -p 6806:6806 \
  -e PUID=1001 -e PGID=1002 \
  b3log/siyuan \
  --workspace=workspace_dir_container \
  --accessAuthCode=xxx

  • PUID: 自定义用户 ID(可选,如果未提供,默认为 1000

  • PGID: 自定义组 ID(可选,如果未提供,默认为 1000

  • workspace_dir_host:宿主机上的工作空间文件夹路径

  • workspace_dir_container:容器内工作空间文件夹路径,和后面 --workspace 指定成一样的

    • 另外,也可以通过 SIYUAN_WORKSPACE_PATH 环境变量设置路径。如果两者都设置了,命令行的值将优先。

  • accessAuthCode:访问授权码,请务必修改,否则任何人都可以读写你的数据

    • 另外,也可以通过 SIYUAN_ACCESS_AUTH_CODE 环境变量设置授权码。如果两者都设置了,命令行的值将优先。

-----------------------------------------------------------

以上官方的说明里漏了一个很重要的参数,就是部署完后,重启不能自动运行。为解决这个问题,参考如下:

要让 Docker 容器在重启后自动运行,有以下方法:

1. 使用 --restart 参数

在运行容器时指定重启策略:

docker run --restart unless-stopped -d your_image

或者:

docker run --restart always -d your_image

unless-stopped:除非明确停止容器,否则总是重启(推荐)

always:无论退出状态如何总是重启

on-failure:仅在非零退出状态时重启

2. 修改已有容器的重启策略

对于已经运行的容器:

docker update --restart unless-stopped container_name_or_id

所以,结合上面,我的部署命令是:

docker run -d \
 -v /siyuan/workspace:/siyuan/workspace \
 -p 6666:6806 \
 -e PUID=1001 -e PGID=1002 \
 b3log/siyuan \
 --workspace=/siyuan/workspace/ \
 --accessAuthCode=25052505 \
 --restart unless-stopped

说明:

以上的-p 6666:6806中,6666代表是ubuntu系统所开放的端口,6806是docker 思源笔记的端口。可以理解为有一台虚拟路由器位置于ubuntu和docker容器之间,将docker容器的6806端口映射到6666,这样在局域网中可以通过6666端口访问docker容器。不是必须这样设置,但这样设置的好处是,为后面的外网映射保持一致,比较容易记。例如外网映射也是6666,那外网和局域网大家只记得6666端口就可以了,不用记两个端口。当然也可以外网映射默认的6806端口,但这样不是很安全。

--accessAuthCode=25052505 的意思是网页打开思源笔记时所输入的密码,这个最好要设置,不然不安全

--restart unless-stopped 意思是保持开机启动,但手动停止的除外。手动停止的想恢复,手动启动容器就可以了。

3、验证容器是否运行

用docker ps命令即可

image.png

status显示为up

或docker ps -a ,可以显示所有容器状态,包括启动和未启动的

4、思源保存的位置

根据以上部署命令,保存的位置是/siyuan/workspace。


打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章