docker 安装nextcloud+onlyoffice+mysql
Posted 一步一步往上爬47
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 安装nextcloud+onlyoffice+mysql相关的知识,希望对你有一定的参考价值。
环境
类目 | 版本 | 备注 |
---|---|---|
操作系统 | centos 7 64位 | |
Docker | 最新版 | |
Docker compose | 最新版 | 暂时没有用上可以不安装 |
nextcloud | 最新版 | |
onlyoffice | 最新版 | |
mysql | 最新版 |
安装
基础依赖
yum install epel-release -y
yum install lynx wget expect iptables net-tools -y
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
安装docker相关
yum install git docker docker-compose -y
配置docker 国内镜像源
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://e674da1e.m.daocloud.io
启动docker 并设置开机自启
systemctl start docker.service
systemctl enable docker
拉取mysql、nextcloud、onlyoffice镜像
docker pull mysql
docker pull nextcloud
docker pull onlyoffice/documentserver
安装MySQL
docker run -p 3306:3306 --restart=always --name mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
配置MySQL
docker exec -it mysql容器ID /bin/bash
root@ID:/# mysql -u root -p
mysql> GRANT ALL PRIVILEGES on *.* to root@\'%\' WITH GRANT OPTION;
mysql> ALTER USER \'root\'@\'%\' IDENTIFIED BY \'123456\' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.02 sec)
mysql> ALTER USER \'root\'@\'%\' IDENTIFIED WITH mysql_native_password BY \'123456\';
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
mysql> exit
安装nextcloud
docker run -p 8080:80 --restart=always -v /root/nextcloud/html:/var/www/html -v /root/nextcloud/apps:/var/www/html/custom_apps -v /root/nextlcoud/config:/var/www/html/config -v /root/nextcloud/nextcloud/data:/var/www/html/data -v /rott/nextcloud/themes:/var/www/html/themes -d nextcloud
配置nextcloud
- 设置用户名、密码
- 配置连接mysql 数据库配置信息(数据库【没有时可自动创建】、用户名、密码、IP地址)
安装onlyoffice
docker run -i -t -d -p 6060:80 --restart=always -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql onlyoffice/documentserver
配置onlyoffice
-
nextcloud安装onlyoffice app
点击右上角用户图标--》应用--》office & text--》only office --》点击下载安装并启用
![image-20211011162806124](/Users/freedom/Library/Application Support/typora-user-images/image-20211011162806124.png)
-
修改nextcloud config.php设置
添加如下语句,路径/root/nextlcoud/config
\'allow_local_remot_servers\' => true;
-
配置nextcloud onlyoffice 服务器地址
点击右上角用户图标--》设置--》onlyoffice--》配置相关信息
使用docker-compose安装Nextcloud
Nextcloud简介
Nextcloud是一个企业存储和相互协作网站网站。代码开源。
官网:https://nextcloud.com/
官方项目:https://github.com/nextcloud/docker
安装前提条件
如果你对容器化不太熟,可以安装宝塔面板。然后通过宝塔面板安装LNMP环境来部署Nextcloud。但是这个方法部署出来的环境不太稳定,不能达到高可用HA。而且LNMP安装非常耗时间。
如果想用docker启动一个高可用的Nextcloud网站,则需要安装docker和docker-compose。
Ubuntu安装docker
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 验证docker安装成功
sudo docker run hello-world
安装docker-compose
wget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -O /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证docker-compose命令
docker-compose -v
创建用于保存配置和文件的目录
mkdir -p /nextcloud/nginx # 存放nginx配置
mkdir -p /nextcloud/db # 存放数据库文件
mkdir -p /nextcloud/app # 存放nextcloud程序包,以后出现问题了可以修改里面的php配置文件
多种架构
单app单数据库架构(亲测可用)
这种方式比用宝塔面板装LNMP然后运行nextcloud要稳定很多,因为宝塔面板安装出来的各个组件通过服务器内网进行通信,通信时需要使用服务器端口,通信结束链接断开,属于短链接。而使用如下脚本创建出来的数据库和nextcloud之间是通过docker网桥直接link通信,网络数据长连接,通信更稳定
vim /nextcloud/compose.yml ,并写入如下内容
version: '2'
#volumes:
#nextcloud:
#db:
services:
db:
image: mariadb:10.5
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW\\
networks:
- nextcloud_netbridge
volumes:
- /nextcloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
restart: always
ports:
- 11000:80
networks:
- nextcloud_netbridge
links:
- db
volumes:
- /nextcloud/app:/var/www/html
environment:
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
networks:
nextcloud_netbridge:
driver: bridge
最后启动集群
docker-compose -f /www/nextcloud/compose.yml up -d
访问 http://ip:11000即可登录nextcloud(端口号可以修改的)
负载均衡+app+数据库(正在研究,不要用)
vim /www/nextcloud/compose.yml ,并写入如下内容
version: '2'
#volumes:
#nextcloud: /www/nextcloud/app
#database: /www/nextcloud/db
#nginx-proxy: /www/nextcloud/nginx
services:
db:
image: mariadb:10.5
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- /www/nextcloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:fpm
restart: always
links:
- db
volumes:
- /www/nextcloud/app:/var/www/html
environment:
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
web:
image: nginx
restart: always
ports:
- 11000:80
links:
- app
volumes:
- /www/nextcloud/nginx/:/etc/nginx/
#volumes_from:
#- nginx-proxy
最后启动集群
docker-compose -f /www/nextcloud/compose.yml up -d
访问 http://ip:8080即可登录nextcloud
以上是关于docker 安装nextcloud+onlyoffice+mysql的主要内容,如果未能解决你的问题,请参考以下文章