NextCloud Docker环境搭建

NextCloud

  • 支持视频倍速播放,最高4倍速
  • 支持移动端App,Web访问
  • 👍👍👍

前言

  • 首先部署是需要数据库的,我们这边选择Mysql
    • Mysql数据文件通过挂载的方式,防止容器挂掉数据库数据丢失
  • Docker容器网络通信,通过端口映射到容器内
    • 有利于通过主机端口访问
  • 文件放在/root/docker-home/nextCloud,提前准备起来额
nextCloud
  - mysql
  - nextCloud
  - data
  - readme.md
  • 宿主机:宿主机是已经存在的机器,例如云主机、实体机器(台式,笔记本)、本地虚拟机(virtualbox、VMware)、Nas

安装 & 部署

软件环境

Centos7.4Docker18.06Docker-MysqlDocker-NextCloud

Docker安装

创建网桥

  • 使当前部署的服务Mysql和NextCloud在一个网络平面内,不受其他服务的影响,相当于命名空间(白话:企业权限隔离)
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
posted @ 2021-06-10 21:21  mypanda  阅读(2473)  评论(0编辑  收藏  举报