一、背景

Nextcloud是个人云存储服务,提供云存储服务,内置了Office文档、图片相册、日历联系人、两步验证、文件管理、RSS阅读等丰富的应用。可安装在本地或云主机,本文使用Docker进行部署,一来直接在主机上部署,要安装的软件实在太多了,二来Nextcloud官方有提供好的Docker镜像。

二、docker部署

由于Nextcloud还需要数据库的支持,如果单独用docker的话,需要手动依次运行2个容器,因此使用docker-compose部署(实际上笔者几乎所有的docker应用,优选这个方式),docker-compose.yml文件内容如下:

# nextcloud docker-compose file
# by Late Lee<li@latelee.org>version: '2'services:mysql:image: mysql:5.7container_name: nextmysqlrestart: alwaysvolumes: # 数据库持久化存储- ./db:/var/lib/mysqlenvironment: # 数据库账号和密码- MYSQL_ROOT_PASSWORD=ll123456- MYSQL_PASSWORD=ll123456- MYSQL_DATABASE=nextcloud- MYSQL_USER=nextcloudnetworks:- nextcloud-netnextcloud:image: nextcloud:apache container_name: nextcloudrestart: alwaysports:- 8008:80 # 对外使用8008端口links:- mysql # 连接到数据库volumes:- ./nextcloud:/var/www/htmlnetworks:- nextcloud-netnetworks:nextcloud-net:driver: bridge

关于docker-compose.yml文件,需要说明几点:

  • 1、数据使用镜像mysql:5.7,并非最新版本,服务名为mysql,这个名称是Nextcloud连接的数据库主机——注意,不是容器名称。另外需要设置数据库名称、用户和密码,因为Nextcloud要使用到。
  • 2、Nextcloud使用镜像nextcloud:apache,集成了apache服务。对外提供8008端口,因为笔者云主机的80端口需要做反向代理。
  • 3、为了持久化存储,两个容器都进行目录的挂载。

执行命令docker-compose up -d启动服务,如果镜像不存在,会自动下载。注意,2个镜像体积较大,需要一定时间。针对体积大的镜像,如果使用阿里云主机,可提交到阿里的镜像仓库,这样后续使用速度会非常快。

服务成功启动后,查看其状态:

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
8fff850ff996        nextcloud:apache    "/entrypoint.sh ap..."   42 minutes ago      Up 42 minutes       0.0.0.0:8008->80/tcp   nextcloud
09d7cd30812c        mysql:5.7           "docker-entrypoint..."   42 minutes ago      Up 42 minutes       3306/tcp               nextmysql

状态正常,可以看到,Nextcloud对外开放了8008(映射到内部的80端口),而mysql只在内部开放了3306端口,因为是部署在公网,不会直接操作数据库,所以不开放端口。

三、Nextcloud服务

使用浏览器打开http://<IP地址或域名>:8008,输入管理员账号和密码,选择Mysql数据,输入在docker-compose.yml文件设置好的参数,点击“安装完成”即可。如图1所示:

图1

Nextcloud主页如图2所示:

图2

点击右上角图标进行各项的设置,如头像、邮箱地址、修改密码,等等。这些在页面上均有提示指引,所以本文不再赘述。

四、Nextcloud客户端

Nextcloud提供了客户端,包括Windows、MacOS、Linux,也提供移动端APP下载,地址:https://nextcloud.com/install/#install-clients。安装过程十分简单,此处从略。

如此一来,服务端有了,客户端有了,在使用上跟常用的网盘没有太大的区别,不过,现在也没剩多少个网盘了,所以,自己搭建一个自己的网盘是十分有必要的。客户端界面如图3所示。

图3

五、小结

理论上,开放到公网的地址,最好是使用https协议,但笔者还没有解决一些问题,所以本文未涉及。

重置密码方法

Nextcloud使用命令行示例:

docker exec --user www-data <容器ID> php occ

比如查看系统用户:

$ docker exec --user www-data cab517edc9b0  php occ user:list - latelee: 李迟- test: test

根据教程重置密码:

$ docker exec --user www-data cab517edc9b0  php occ user:resetpassword latelee
Interactive input or --password-from-env is needed for entering a new password!

提示说要添加--password-from-env选项,添加后:

docker exec --user www-data cab517edc9b0  php occ --password-from-env user:resetpa
ssword latelee
--password-from-env given, but OC_PASS is empty!

但是,在容器里或主机中设置OC_PASS的值,均无效。因此以失败告终。

附录

Nextcloud官方镜像:https://hub.docker.com/_/nextcloud/

李迟 2019.10.17 周四,离职找工作期间

我的docker随笔19:Nextcloud部署相关推荐

  1. K8S最新版本集群部署超详细(k8s版本1.5.1)docker 版本19.03.1以及基本操作和服务介绍。

    更新:今天抽时间写了昨天部署的一键脚本: date:Aug 3,2019 <Kubernetes最新版本1.15.1,shell脚本一键部署,刚刚完成测试,实用.> 最近利用空闲时间,把之 ...

  2. docker部署 win7 Docker Toolbox 19.03.1

    参考自:[docker]Docker Toolbox 19.03.1安裝教程_sunX_的博客-CSDN博客 准备工作,这三个文件 地址:回头提供 系统环境检查,执行 LeoMoon CPU-V.ex ...

  3. 「实战篇」开源项目docker化运维部署-后端java部署(七)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:「实战篇」开源项目docker化运维部署-后端java部署(七) 本节主要说说后端的部署需要注意的点,本身renren-fas ...

  4. Docker Swarm集群部署

    Docker Swarm集群部署 1 方案介绍 1.1 概述 1.2 软件包 2 Swarm集群搭建 2.1 IP规划 2.2 基础配置 2.2.1 关闭SELinux 2.2.2 关闭防火墙或开放需 ...

  5. 个人云盘NextCloud部署方案

    1.简述 使用开源软件Nextcloud实现,总体部署是使用Dokcer+Nextcloud+mysql. 2.部署方案 2.1 安装Docker 依次执行以下命令: (1)yum安装dockeryu ...

  6. 《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案四)》

    文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...

  7. 《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案三)》

    文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...

  8. Docker网络解决方案 - Calico部署记录

    Docker网络解决方案 - Calico部署记录 参考文章: (1)Docker网络解决方案 - Calico部署记录 (2)https://www.cnblogs.com/kevingrace/p ...

  9. Docker selenium自动化 - Python调用容器实例跑自动化查天气实例演示,docker selenium自动化环境部署过程

    Docker selenium自动化 - 环境部署与 Python 自动化运行实战演示 第一章:docker selenium 环境部署 ① 下载 selenium 镜像 ② 容器 selenium ...

最新文章

  1. 自定义GridView分页模板
  2. driver.class.php line: 109,thinkphp3.2.3 无法加载数据库驱动: Think\Db\Driver\
  3. java读取excel中的数据存到数据库
  4. java 转换 unicode_JAVA中最方便的Unicode转换方法
  5. python3.7.2安装pywifi_python pywifi
  6. [裴礼文数学分析中的典型问题与方法习题参考解答]4.3.14
  7. mktime()的格式
  8. 如何把Backtrack 5安装到U盘/Backtrack 4安装方法
  9. 微信小程序模板订阅消息推送
  10. python世界你好_“你好,世界Python教程
  11. 本人常用资源整理(ing...)
  12. 来自GitHub的Python开源项目,100%可用的12306多功能抢票助手,切勿作为商业用途
  13. 写作素材分类整理技巧分享
  14. 【前端】解决盒子被撑大问题 box-sizing
  15. 什么是一体化管理体系
  16. JAVA并发编程:悲观锁与乐观锁
  17. 第2章 第2节-Dijkstra Astar
  18. python123填充颜色_WPS表格中如何设置图案填充颜色透明度?,值得收藏
  19. 一个著名的任务调度系统是怎么设计的?
  20. 【起】Redis 概述篇——带你走过 Redis 的前世今生

热门文章

  1. java 获取文件大小_利用百度AI OCR图片识别,Java实现PDF中的图片转换成文字
  2. 11.11开启10分钟 达达承接的京东小时购首单已签收
  3. 由于供不应求 部分新款Apple Watch机型推迟至11月交付
  4. 小米电动车官宣!雷军:今晚发布会跟大家仔细说
  5. 一个月市值蒸发116亿元,《姜子牙》救不了光线传媒
  6. 三菱电机宣布放弃液晶面板业务 2022年6月停止生产相关模组
  7. 东方航空:拟与携程等出资设立三亚国际航空
  8. iPhone 11系列低至4599元,40亿消费券开抢!618正式开启了
  9. 雷军:小米10是首款支持8x8 MU-MIMO的手机
  10. 游戏主播这个行为终于有人治了!腾讯下“禁令”