本文主要介绍docker利用nextcloud构建私有华为云磁盘的方法,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章,收获多多。让桂哥网络带你去了解一下。
突然,需要为文档存储协作构建一个私有服务。多方搜索后,只有office服务可以满足我的文档编辑需求,而nextcloud可以用来搭建私有云磁盘服务,满足我的文档在线协同存储需求。其实说白了就是一个可以编辑分享ofiice等文件的私有云磁盘。
前期我是用传统的图像一个一个的开始,后来切换到docker-compose进行部署,所以我也提供了两个解决方案。还有一点就是我的数据库使用postgresql,系统也支持mysql和MariaDB,或者直接使用内置的sqLite。如果采用mysql,MariaDB的配置模式和我的postgresql差不多,内置的sqLite简单很多,直接忽略了文章中数据库的所有操作。
正文
安装启动服务
第一种方法是传统部署,第二种方法是docker-compose部署,推荐第二种方法,简单。
不管怎样,先安装docker
linux下的Docker安装
方式一
拉nextcloud镜像和数据库镜像
数据库镜像是可选的。也可以使用mysql或者直接使用nextcloud内置的sqlLite。我这里用postgresql。因为我需要操作办公室,所以我只安装了办公室服务,这可以忽略不计。
dockerpulldocker.io/nextcloud
dockerpullpostgres
创建启动容器dockerpullonly office/document server
如果不使用内置数据库,数据库需要先初始化存储仓库。我创建了一个云仓库来保存数据并启动它。
启动数据库(不需要)
dockerrun-restart=every-name PostgreSQL-v/etc/local time :/etc/local time-v/Data/PostgreSQL :/var/lib/PostgreSQL/Data-e postgres _ password=123456-d-p 35432:5432 postgres-e postgres _ password=123456表示数据库密码默认为123456。
启动office服务(非一定要)
只有办公室/文档服务器启动下一个云
docker run-restart=every-name next cloud-p 8080:80-v/next cloud 3360/var/www/html-link PostgreSQL 3360 PostgreSQL-dnextcloud-name nextcloud设置容器名称
-restart=总是表示总是自启动,机器重启后会重启容器,比如关机。
-p 8080:80表示将原生端口8080映射到容器中的端口80,也就是说,当您想要访问它时,您需要原生ip:8080(您可以选择您想要的端口)。
-v /nextcloud:/var/www/html用于将容器相关资源映射到本地/nextcloud目录(可以选择自己对应的目录),方便数据持久化和页面配置的外部修改。
-link postgresql : postgresql不需要,链接PostgreSQL数据库的容器便于配置(后面会详细介绍该功能)
方式二
安装docker-撰写
curl-l https://github.com/docker/compose/releases/download/1 . 10 . 1/docker-compose-` uname-s `- ` uname-m `/usr/local/bin/docker-compose
chmod x/usr/local/bin/docker-撰写编写docker-compose文件
创建一个专用文件夹,以nextcloud为例,在其中创建docker-compose.yml文件
h:plain;">version:'2' services: nextcloud: container_name:nextcloud_app image:nextcloud ports: -"8080:80" volumes: -./app:/var/www/html links: -postgresql restart:always onlyoffice: container_name:nextcloud_office image:onlyoffice/documentserver ports: -"9000:80" restart:always postgresql: container_name:nextcloud_db image:postgres:11.4 environment: -POSTGRES_PASSWORD:123456 volumes: -./postgresql:/var/lib/postgresql/data -/etc/localtime:/etc/localtime restart:always networks: default: external: name:nextcloud启动容器
在docker-compose.yml同级目录操作。
第一次启动会自动拉取镜像,所以要有网。并且采用了网络连接方式,得手动创建一个net桥。
创建net:
dockernetworkcreatenextcloud
启动:
docker-composeup-d
等到以上服务正式启动好了后,接下来就是配置了。
初始化配置
浏览器访问ip:8080
4.1 输入管理员账户密码
4.2 数据目录建议保持不动,默认就好
4.3 数据库选择
内置SQLite数据库,存储文件较少可以直接选择默认安装完成就好.
如果选用其他数据库,以PostgreSQL为例:
数据库用户名和密码就不用说了,数据库名对应数据库需要提前创建好.
最重要的数据库主机就是数据库的访问ip+端口号.
注:
但是我填的postgresql是不是有点眼熟,对,就是--link(方式二里面使用的net方式,目的一样). 我的数据库用的也是docker容器,使用--link可以将PostgreSQL数据库的容器以别名形式传递过来,所以这边直接可以使用postgresql表示数据库(这是docker容器间的一种通信方式,注意一点是PostgreSQL容器一定要在nextcloud容器前启动).
白名单配置和使用
如果你需要域名和一些新的ip端口可以访问,需要修改/nextclou/config/config.php中配置(没有请添加)
'trusted_domains'=> array( 0=>'www.xxx.com:10080', ),
然后就是使用和邮箱的配置可以进行自行摸索.
配置onlyoffice(非一定要,我只是为了在线操作word等)
进入云盘以管理员账号登录,点击用户->应用来安装ONLYOFFICE插件:
然后用户->设置->ONLYOFFICE来填入自己服务的地址即可。
效果图:
感谢你能够认真阅读完这篇文章,希望小编分享的“docker利用nextcloud搭建一个私有百度云盘的方法”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
TikTok千粉号购买平台:https://tiktokusername.com/
TOP