跳转到内容

使用 Docker 部署

前置准备

请参考 Docker 安装文档 安装 Docker。

获取镜像

你可以在 cloudreve/cloudreve 仓库页面找到所有可用的标签。

启动

bash
docker run -d --name cloudreve -p 5212:5212 \
    -v ~/cloudreve/data:/cloudreve/data \
    cloudreve/cloudreve:latest

容器 Volume

在上面的例子中,我们使用 -v ~/cloudreve/data:/cloudreve/data 挂载了宿主机的 ~/cloudreve/data 目录到容器内的 /cloudreve/data 目录,以便于在宿主机修改 Cloudreve 配置文件。所有 Cloudreve 额外产生的文件(头像、配置文件、临时目录)等,默认都会存储到此目录。

配置数据库

在以上启动命令中,我们没有配置数据库,Cloudreve 会使用 SQLite 存储数据。如果需要让 Cloudreve 连接其他数据库,你可以选择下面任一方式:

在启动容器时,你可以通过环境变量传入数据库配置:

bash
docker run -d --name cloudreve -p 5212:5212 \
    -v ~/cloudreve/data:/cloudreve/data \
    -e CR_CONF_Database.Type=postgres \
    -e CR_CONF_Database.Host=127.0.0.1 \
    -e CR_CONF_Database.Port=5432 \
    -e CR_CONF_Database.User=cloudreve \
    -e CR_CONF_Database.Password=cloudreve \
    -e CR_CONF_Database.Name=cloudreve \
    .....

其中可用的配置变量为:

变量名说明
CR_CONF_Database.Type数据库类型,支持 postgresmysqlsqlite
CR_CONF_Database.Host数据库地址
CR_CONF_Database.Port数据库端口
CR_CONF_Database.User数据库用户名
CR_CONF_Database.Password数据库密码
CR_CONF_Database.Name数据库名称
CR_CONF_Database.DBFile可选,SQLite 数据库文件路径
CR_CONF_Database.UnixSocket可选,truefalse,是否使用 Unix Socket 连接数据库

配置 Redis

在以上启动命令中,我们没有配置 Redis,Cloudreve 会使用内置内存存储。如果需要让 Cloudreve 连接 Redis,你可以选择下面任一方式:

在启动容器时,你可以通过环境变量传入 Redis 配置:

bash
docker run -d --name cloudreve -p 5212:5212 \
    -v ~/cloudreve/data:/cloudreve/data \
    -e CR_CONF_Redis.Server=127.0.0.1:6379 \
    -e CR_CONF_Redis.Password=your_redis_password \
    -e CR_CONF_Redis.DB=0 \
    cloudreve/cloudreve:latest

其中可用的配置变量为:

变量名说明
CR_CONF_Redis.ServerRedis 地址
CR_CONF_Redis.Password连接密码
CR_CONF_Redis.DB数据库编号,默认为 0
CR_CONF_Redis.Network网络类型,默认为tcp,可选 tcp, tcp4 (IPv4-only), tcp6 (IPv6-only), udp, udp4 (IPv4-only), udp6 (IPv6-only), ip, ip4 (IPv4-only), ip6 (IPv6-only), unix, unixgram, unixpacket
CR_CONF_Redis.UserRedis ACL 用户名

下一步

至此,Cloudreve 已经启动成功并监听 5212 端口,请继续前往 后续步骤 页面,完善你的部署。

常见问题

容器无法启动?

先找到重启的容器,然后查看日志:

bash
docker logs -f cloudreve

在启动阶段 Cloudreve 异常退出的原因主要是传入配置有问题,你可以通过容器日志找到相关线索,常见的错误有:

  • 数据库配置错误;
  • Redis 配置错误;
  • 授权密钥错误;
Cloudreve 报错 Please specify license key by ...

请检查你在启动前是否正确设置了 CR_LICENSE_KEY 环境变量,其值为你在 Pro 授权管理面板 获取到的授权密钥。

我在启动容器时配置了数据库或 Redis,后续如何修改配置?

在容器启动时通过环境变量传入的配置项,后续无法再通过修改 conf.ini 文件来修改。你可以使用新的配置启动一个新的容器,只需要确保 /cloudreve/data 挂载到了与旧容器相同的目录即可。即保持 -v ~/cloudreve/data:/cloudreve/data 不变。

如何更新 Cloudreve?

因为 Cloudreve 将所有配置和数据存放到了 /cloudreve/data Volume 中,我们只需要用新的镜像创建一个新的容器,并挂载相同的 Volume 即可。

bash
# 关闭当前运行的容器
docker stop cloudreve

# 删除当前运行的容器
docker rm cloudreve

# 使用新的镜像创建一个新的容器,并挂载相同的 Volume
docker run -d --name cloudreve -p 5212:5212 \
    -v ~/cloudreve/data:/cloudreve/data \ # 确保与上次启动时相同
    # 其他配置参数,与上次启动相同
    cloudreve/cloudreve:latest

你还需要参考 更新 Cloudreve 页面,完成后续流程。