
layr/seafileSeafile是一款"下一代开源云存储",具备高级文件同步、隐私保护和团队协作功能。本Docker镜像并非直接打包Seafile,而是提供运行Seafile所需的环境,包括启动脚本及MySQL、memcached依赖。该版本仅支持MySQL后端(不支持SQLite),需预先创建数据库和memcached实例,且建议在HTTPS反向代理后运行。
setup-seafile和download-seafile脚本,简化安装和升级/seafile目录,支持卷挂载适用于需要搭建私有云存储服务的企业或个人用户,尤其适合需要文件同步、团队协作及数据隐私保护的场景。需具备已配置的MySQL数据库、memcached服务和nginx反向代理。
需预先安装并配置MySQL/MariaDB数据库。登录数据库主机执行以下SQL创建必要的数据库和用户:
sqlmysql -uroot -p${DB_ROOT_PW} <<'EOF' DROP DATABASE IF EXISTS `ccnet_db`; DROP DATABASE IF EXISTS `seafile_db`; DROP DATABASE IF EXISTS `seahub_db`; CREATE DATABASE `ccnet_db` CHARACTER SET = 'utf8'; CREATE DATABASE `seafile_db` CHARACTER SET = 'utf8'; CREATE DATABASE `seahub_db` CHARACTER SET = 'utf8'; DROP USER IF EXISTS 'seafile'@'%'; CREATE USER IF NOT EXISTS 'seafile'@'%' IDENTIFIED BY 'seafile_passwd'; GRANT ALL PRIVILEGES ON `ccnet_db`.* TO `seafile`@'%'; GRANT ALL PRIVILEGES ON `seafile_db`.* TO `seafile`@'%'; GRANT ALL PRIVILEGES ON `seahub_db`.* TO `seafile`@'%'; FLUSH PRIVILEGES; EOF
需预先创建memcached容器,并通过--link或用户定义网络连接到Seafile容器。
首次运行镜像时,嵌入式setup-seafile脚本将在/seafile目录下安装配置Seafile。推荐先阅读Seafile安装手册。
环境变量说明:
VER:Seafile服务器版本(如6.0.7)或latestSERVER_NAME:服务器名称SERVER_IP:服务器域名或IP(不含协议)FILESERVER_PORT:文件服务器端口,默认8082SEAHUB_ADMIN_USER:管理员用户名SEAHUB_ADMIN_PW:管理员密码USE_EXISTING_DB:使用现有数据库,设为1MYSQL_HOST:MySQL主机地址MYSQL_PORT:MySQL端口,默认3306MYSQL_USER:MySQL用户名MYSQL_USER_PASSWD:MySQL用户密码CCNET_DB:ccnet数据库名SEAFILE_DB:seafile数据库名SEAHUB_DB:seahub数据库名AUTOSTART:是否自动启动服务,默认trueONLY_OFFICE_DOMAIN:OnlyOffice域名(可选,用于文档预览/编辑)安装命令示例:
bashdocker run -it --rm \ -e VER=6.0.7 \ -e SERVER_NAME=seafile-server \ -e SERVER_IP=seafile.yourdomain.com \ -e FILESERVER_PORT=8082 \ -e SEAHUB_ADMIN_USER=youradminuser \ -e SEAHUB_ADMIN_PW=yourpassword \ -e USE_EXISTING_DB=1 \ -e MYSQL_HOST=db \ -e MYSQL_PORT=3306 \ -e MYSQL_USER=seafile \ -e MYSQL_USER_PASSWD=seafile_passwd \ -e CCNET_DB=ccnet_db \ -e SEAFILE_DB=seafile_db \ -e SEAHUB_DB=seahub_db \ -v /path/on/host/to-installation-dir:/seafile \ --link memcached \ --link db \ layr/seafile --skip-runit -- setup-seafile
使用download-seafile脚本升级Seafile版本:
bashdocker run -it --rm \ -e VER=6.0.7 \ -v /path/on/host/to-installation-dir:/seafile \ layr/seafile --skip-runit -- download-seafile
启动命令示例:
bashdocker run -d \ --name seafile \ -p ***:*** \ -p ***:*** \ -p 8000:8000 \ -p 8080:8080 \ -p 8082:8082 \ -v /path/on/host/to-installation-dir:/seafile \ -e AUTOSTART=true \ --link memcached \ --link db \ layr/seafile
docker stop seafile && docker rm seafiledocker pull layr/seafileAUTOSTART=false或使用--skip-runit参数启动容器docker exec -it seafile /bin/bashbashexport VER=7.1.5 # 或 VER=latest download-seafile
cd /seafile/seafile-server-7.1.5AUTOSTART=true并重启容器详见Seafile官方文档






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务