建立自己的共享云盘,有必要吗?当然。万一那些个牛轰轰的关张了呢?事实上一些已经关张了,还活着的某度会偷偷地进去翻你的东西,甚至把它看不顺眼的文件直接删除。
这里介绍一个方法,使用ownCloud创建自己的网盘。
- 如果想要外部可以访问,安装设置参考 https://my.oschina.net/u/2306127/blog/2245765
- 在大型集群中运行,参考 在Kubernetes集群中部署ownCloud云盘系统
ownCloud 可以通过Docker部署,使用 the official ownCloud Docker image。该官方镜像设计为与宿主机文件系统的数据卷一起工作,包含独立的 MariaDB 和 Redis containers。配置如下:
- 暴露端口 80 和 443,允许 HTTP 和 HTTPS 连接访问。
- 挂载宿主机的 data 和 MySQL data 目录,用于持久存储。
本地安装
创建一个新的项目目录,然后下载 docker-compose.yml
从 the ownCloud Docker GitHub repository 到这个指定的本地目录。 下一步,创建 一个 .env 配置文件,其中包含配置参数。只有很少的参数需要配置,如下:
设置参数名称 | 描述 | 举例 |
---|---|---|
OWNCLOUD_VERSION |
The ownCloud version | latest |
OWNCLOUD_DOMAIN |
The ownCloud domain | localhost |
ADMIN_USERNAME |
The admin username | admin |
ADMIN_PASSWORD |
The admin user’s password | admin |
HTTP_PORT |
The HTTP port to bind to | 80 |
HTTPS_PORT |
The HTTP port to bind to | 443 |
然后,你可以启动容器了。使用 Docker command-line tool。下面的例子,使用 Docker Compose来启动相关的容器服务。
使用 docker参考 in the GitHub repository。
# Create a new project directory mkdir owncloud-docker-server cd owncloud-docker-server # Copy docker-compose.yml from the GitHub repository wget https://raw.githubusercontent.com/owncloud-docker/server/master/docker-compose.yml # Create the environment configuration file cat << EOF > .env OWNCLOUD_VERSION=10.0 OWNCLOUD_DOMAIN=localhost ADMIN_USERNAME=admin ADMIN_PASSWORD=admin HTTP_PORT=80 HTTPS_PORT=443 EOF # Build and start the container docker-compose up -d
当处理完成,检查是否所有的容器都已经成功启动,通过运行 docker-compose ps
。如果全部成功,结果如下:
Name Command State Ports ------------------------------------------------------------------------------------------------------- server_db_1 /usr/bin/entrypoint /bin/s ... Up 3306/tcp server_owncloud_1 /usr/local/bin/entrypoint ... Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp server_redis_1 /bin/s6-svscan /etc/s6 Up 6379/tcp
你可以看到, database、 ownCloud和Redis containers已经运行,ownCloud 服务可以通过宿主机端口 443 和 80访问,即https和http端口。
当所有容器刚开始运行,ownCloud需要几分钟才能完全可用。如果运行 docker-compose logs --follow owncloud
查看日志输出,可以看到很多信息的输出到控制台窗口,稍等一会儿,当消息减少时就可以来访问web UI了。
登录界面
打开浏览器,进入 https://localhost
。可以看到ownCloud login screen。
用户名和密码是admin,是在上面的.env
配置里指定的。
第一次通过 HTTPS访问时,浏览器会出现警告说 SSL certificate 是自签名的。不过, the self-signed certificate can be overwritten with a valid cert, within the host volume.
停止容器
假定你使用的 docker-compose, 如前面的例子,停止容器使用 docker-compose stop
。另外,可以使用 docker-compose down
停止和删除容器,包括其相关的networks, images, 和 volumes。
升级 ownCloud
当ownCloud发布新版本时,你应该更新运行的容器实例,如下:
首先,进入 .yaml
或 .env
文件的目录。
然后,让ownCloud 进入maintenance mode,通过下面的命令:
docker-compose exec server occ maintenance:mode --on
第三,创建备份,以防止升级过程出错,使用下面的命令:
docker-compose exec db backup
这假定你使用 the default database container from Webhippie。
第四,关闭容器。
docker-compose down
然后,更新 ownCloud 在 .env
和 YAML 文件中的版本号。可以使用 sed 来替换,如下:
# Make sure that you adjust the example to match your installation. sed -i 's/^OWNCLOUD_VERSION=.*$/OWNCLOUD_VERSION=<newVersion>/' /compose/*/.env
查看下,是否都改完、改正确了:
cat .env
最后,重新启动服务:
docker-compose up -d
现在新版的 ownCloud 就运行起来了。
备份
所存储的文件是挂在容器外面的,不会受到升级的任何影响。
但是,owncloud只是存储了单份的拷贝,对于重要的数据,需要自己建立存储的定期备份机制。
来源:oschina
链接:https://my.oschina.net/u/2306127/blog/2239802