
Seafile 是一款"下一代开源云存储,具备高级文件同步、隐私保护和团队协作功能"。
本Dockerfile提供了运行Seafile的环境,Seafile将使用默认参数自动配置,并在容器启动时运行。
您可以使用mysql/mariadb容器或任何已安装的数据库。
bashdocker run -d --name="mariadb" sudokeys/mariadb
bashdocker logs mariadb
该镜像安装Seafile并根据Dockerfile中的默认环境变量及运行时提供的变量进行配置。Seafile可以自动创建数据库,也可以使用已有的(空)数据库。
无论哪种情况,您至少需要提供监听接口的IP地址以及一些用户/密码信息。如果未指定密码,系统将在可能的情况下随机生成并写入"docker logs"。
如果希望Seafile自动创建数据库,需要提供root用户和密码。您也可以指定Seahub管理员***(若不指定则使用默认值)。
示例:
bashdocker run -d --name "myseafile" \ -p 10001:10001 -p 12001:12001 -p 8000:8000 -p 8082:8082 \ --link mariadb:mysql-container \ -e "CCNET_IP=192.168.0.100" -e "MYSQL_ROOT_USER=dataadmin" \ -e "MYSQL_ROOT_PASSWORD=rootpass" -e "SEAHUB_ADMIN_EMAIL=seafileadmin@yourdomain.com" \ sudokeys/seafile
如果使用现有数据库,需要提供数据库的mysql用户、密码及数据库名称(或使用默认名称)。
⚠️ 注意:Seafile安装时数据库必须为空,否则会崩溃!
示例:
bashdocker run -d --name "myseafile" \ -p 10001:10001 -p 12001:12001 -p 8000:8000 -p 8082:8082 \ --link mariadb:mysql-container \ -e "CCNET_IP=192.168.0.100" -e "EXISTING_DB=true" -e "SEAHUB_ADMIN_EMAIL=seafileadmin@yourdomain.com" \ -e "MYSQL_USER=myseafileuser" -e "MYSQL_PASSWORD=myseafilepass" \ sudokeys/seafile
首先运行Nginx容器,并挂载存储静态文件的卷:
bashdocker run -d --name nginx -p 80:80 -p 443:443 -v /opt/seafile/nginx sudokeys/nginx
运行Seafile时使用--volumes-from允许其创建配置文件、SSL证书并复制静态文件。SEAFILE_IP可使用容器静态IP、主机IP(若暴露端口)或DNS发现(如skydock/skydns,本示例使用)。
bashdocker run -d --name "myseafile" -e fcgi=true -e autonginx=true -e "CCNET_IP=myfiles.mydomain.com" \ -e "MYSQL_ROOT_USER=root" -e "MYSQL_ROOT_PASSWORD=rootpass" \ -e "SEAHUB_ADMIN_EMAIL=admin@yourdomain.com" -e "SEAFILE_IP=myseafile.seafile.dev.docker" \ -e "MYSQL_HOST=mydatabase.mariadb.dev.docker" --volumes-from nginx seafile
每次启动新的Seafile容器后,需重启Nginx以重新加载配置:
bashdocker restart nginx
可指定Nginx的SSL密钥和证书。若未指定,将生成自签名证书。如需使用自有证书,需挂载包含证书的主机卷,并通过环境变量NGINX_SSL_KEY和NGINX_SSL_CERT指定路径。示例:
bashdocker run -d --name "myseafile" -e fcgi=true -e autonginx=true -e "CCNET_IP=myfiles.mydomain.com" \ -e "MYSQL_ROOT_USER=root" -e "MYSQL_ROOT_PASSWORD=rootpass" \ -e "SEAHUB_ADMIN_EMAIL=admin@yourdomain.com" -e "SEAFILE_IP=myseafile.seafile.dev.docker" \ -e "MYSQL_HOST=mydatabase.mariadb.dev.docker" \ -e "NGINX_SSL_KEY=/etc/nginx/certs/myseafile.key" -e "NGINX_SSL_CERT=/etc/nginx/certs/myseafile.cert" \ --volumes-from nginx seafile
以下是所有环境变量及其默认值:
AUTO_START:Seafile守护进程是否自动启动,默认trueDOMAIN:Seafile安装时要求的IP或域名,必填,无默认值SEAHUB_ADMIN_EMAIL:Seafile管理员***,默认seaadmin@sea.comSEAFILE_IP:用于Nginx配置的IP或域名,必填,无默认值CCNET_NAME:Seafile安装时的服务器名称,默认my-seafileCCNET_PORT:CCNET守护进程端口,默认10001SEAFILE_PORT:Seafile服务器端口,默认12001FILESERVER_PORT:文件服务器端口,默认8082SEAHUB_PORT:Seahub端口,默认8000AUTO_CONF_DB:是否自动创建数据库(需设置DB_ROOT_*变量),默认trueSEAHUB_DB_NAME:Seahub数据库名称,默认seahub-dbCCNET_DB_NAME:CCNET数据库名称,默认ccnet-dbSEAFILE_DB_NAME:Seafile数据库名称,默认seafile-dbMYSQL_HOST:MariaDB/MySQL主机IP或DNS,默认mysql-containerMYSQL_PORT:MariaDB/MySQL端口,默认3306MYSQL_ROOT_USER:MariaDB/MySQL root用户,默认rootMYSQL_ROOT_PASSWORD:MariaDB/MySQL root密码,默认rootMYSQL_USER:Seafile数据库用户,默认seafileuserMYSQL_PASSWORD:Seafile数据库用户密码,默认随机生成SEAHUB_ADMIN_PASSWORD:Seafile管理员密码,默认随机生成AUTO_CONF_NGINX:是否自动创建Nginx虚拟主机,默认falseFCGI:是否将Seahub配置为FastCGI模式(需反向代理),默认falseSTATIC_FILES_DIR:静态文件存储目录,默认/opt/seafile/nginx/NGINX_SSL_KEY:SSL密钥文件路径,默认falseNGINX_SSL_CERT:SSL证书文件路径,默认falseNGINX_URLS:添加到虚拟主机的URL,格式URL1:URL2:...URLX,默认FalseSSL_BASE_DIR:Nginx容器中证书存储路径,默认/etc/nginx/certs可配置Seahub设置,详情参考Seafile文档:
SHS_EMAIL_USE_TLS:默认FalseSHS_EMAIL_HOST:默认127.0.0.1SHS_EMAIL_HOST_USER:默认FalseSHS_EMAIL_HOST_PASSWORD:默认FalseSHS_EMAIL_PORT:默认25SHS_DEFAULT_FROM_EMAIL:默认$SEAHUB_ADMIN_EMAILSHS_SERVER_EMAIL:默认$EMAIL_HOST_USERSHS_REPO_PASSWORD_MIN_LENGTH:默认8SHS_USER_PASSWORD_MIN_LENGTH:默认6SHS_USER_PASSWORD_STRENGTH_LEVEL:默认3SHS_USER_STRONG_PASSWORD_REQUIRED:默认FalseSHS_CLOUD_MODE:默认FalseSHS_ENABLE_SIGNUP:默认FalseSHS_ACTIVATE_AFTER_REGISTRATION:默认FalseSHS_TIME_ZONE:默认UTC(参考时区列表)SHS_SITE_BASE:默认https://$NAME.$DOMAIN/SHS_SITE_NAME:默认$NAMESHS_SITE_TITLE:默认Seafile $NAMESHS_SITE_ROOT:默认/SHS_USE_PDFJS:默认TrueSHS_SEND_EMAIL_ON_ADDING_SYSTEM_MEMBER:默认TrueSHS_SEND_EMAIL_ON_RESETTING_USER_PASSWD:默认TrueSHS_FILE_PREVIEW_MAX_SIZE:默认30MSHS_SESSION_COOKIE_AGE:默认1209600(2周)SHS_SESSION_SAVE_EVERY_REQUEST:默认FalseSHS_SESSION_EXPIRE_AT_BROWSER_CLOSE:默认FalseSHS_ENABLE_MAKE_GROUP_PUBLIC:默认FalseSHS_ENABLE_THUMBNAIL:默认TrueSHS_THUMBNAIL_ROOT:默认/haiwen/seahub-data/thumbnail/thumb/SHS_THUMBNAIL_EXTENSION:默认pngSHS_THUMBNAIL_DEFAULT_SIZE:默认24SHS_PREVIEW_DEFAULT_SIZE:默认100Seafile目录存储在永久卷/opt/seafile中。要更新基础系统或Seafile运行选项,只需停止容器,使用docker pull sudokeys/seafile更新镜像,然后运行新容器(禁用自动配置并使用--volumes-from):
bashdocker run -d --name "myseafile2" \ -p 10001:10001 -p 12001:12001 -p 8000:8000 -p 8082:8082 \ --link mariadb:mysql-container \ -e "autoconf=false" \ --volumes-from myseafile \ sudokeys/seafile
要升级Seafile,需启动挂载相同卷但禁用AUTO_START的容器,然后按照Seafile升级手册执行升级流程:
bashdocker run -d --name "seafileUpdater" \ -p ***:*** -p ***:*** -p 8000:8000 -p 8082:8082 \ --link mariadb:mysql-container \ -e "autoconf=false" \ -e "AUTO_START=false" \ --volumes-from myseafile \ sudokeys/seafile
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务