NextCloud
- 支持视频倍速播放,最高4倍速
- 支持移动端App,Web访问
- 👍👍👍
前言
- 首先部署是需要数据库的,我们这边选择
Mysql
- Mysql数据文件通过挂载的方式,防止容器挂掉数据库数据丢失
- Docker容器网络通信,通过端口映射到容器内
- 有利于通过主机端口访问
- 文件放在
/root/docker-home/nextCloud
,提前准备起来额
nextCloud
- mysql
- nextCloud
- data
- readme.md
- 宿主机:宿主机是已经存在的机器,例如云主机、实体机器(台式,笔记本)、本地虚拟机(virtualbox VMware)、Nas
安装 & 部署
软件环境
Centos7.4
、Docker18.06
、Docker-Mysql
、Docker-NextCloud
Docker安装
- 两种方式自行选择
- 官方安装方式,可以安装最新版本 https://docs.docker.com/engine/install/centos/
- Aliyun Repo安装方式 https://developer.aliyun.com/mirror/docker-ce
创建网桥
- 使当前部署的服务在一个网络平面内,相当于命名空间(白话:企业权限隔离)
docker network create nextCloud
设置docker mirros
- 下载镜像默认从国外服务下载,这里修改为从阿里云下载,速度杠杠的
native.cgroupdriver=systemd 入门可加可不加
- 文件位置/etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
- 重新配置,并重启软件
systemctl daemon-reload && systemctl restart docker
Docker-Mysql安装
- --name 名称"nextCloud-mysql"
- --network 使用上一步创建的网桥网络 "nextCloud"
- -p 3306:3306 宿主机和容器端口映射
- -v 文件挂载,配置文件(conf),日志(logs),数据(data)
- -e 环境变量设置
- -d 使用的镜像
docker run --name nextCloud-mysql \
--network nextCloud \
--network-alias nextCloud-mysql \
-p 3306:3306 \
-v /root/docker-home/nextCloud/mysql/conf:/etc/mysql \
-v /root/docker-home/nextCloud/mysql/logs:/var/log/mysql \
-v /root/docker-home/nextCloud/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=EZpZ2OBF3c02WMt0 \
-d mysql:5.7
设置Mysql允许远程链接,并创建数据库nextcloud
# 设置Mysql可以远程链接
docker exec nextCloud-mysql /bin/bash -c 'mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "use mysql;grant all privileges on *.* to root@\"%\" identified by \"$MYSQL_ROOT_PASSWORD\" with grant option;flush privileges" '
# 创建nextcloud数据库
docker exec nextCloud-mysql /bin/bash -c 'mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "create database nextcloud default character set utf8mb4 collate utf8mb4_unicode_ci;" '
Docker-NextCloud安装
- --name 名称"nextCloud-nextCloud"
- --network 使用上一步创建的网桥网络 "nextCloud"
- -p 8081:80 容器内NextCloud服务端口80,映射到宿主机的8081端口,通过宿主机的IP和8081端口就可以访问NextCloud
- -v 文件挂载
- -d 使用的镜像
docker run --name nextCloud-nextCloud \
--network nextCloud \
-p 8081:80 \
-v /root/docker-home/nextCloud/data:/var/www/html/data \
-d nextcloud:latest
此时就可以通过宿主机的IP和端口8081,进行访问了
- 注意防火墙,虚拟机网络设置。如遇问题自行百度解决
如果需要远程访问数据库,可以通过以下方式
- 本地软件访问,如,Navicat for MySQL
- 数据库管理系统,如,phpmyadmin
Docker-phpmyadmin安装(选装)
- --name 名称"phpmyadmin"
- --network 使用上一步创建的网桥网络 "nextCloud"
- -p 8082:80 容器内phpmyadmin服务端口80,映射到宿主机的8082端口,通过宿主机的IP和8082端口就可以访问phpmyadmin
- -e 设置容器内环境变量,数据库主机(PMA_HOST),数据库端口(PMA_PORT)
- -d 使用d额镜像
docker run --name phpmyadmin \
--network nextCloud \
-e PMA_HOST=nextCloud-mysql \
-e PMA_PORT=3306 \
-p 8082:80 \
-d phpmyadmin
问题处理
在服务器上移动到文件夹的内容不显示,需要扫描一下
docker exec --user www-data nextCloud-nextCloud php occ files:scan admin