一、部署nextcloud
- 安装docker-compose
[root@docker ~]# curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 数据目录
[root@docker ~]# mkdir -p /root/nextcloud
- 配置文件
[root@docker ~]# vim docker-compose.yml
- 给docker-compose文件夹赋权
[root@docker ~]# chmod a+x /usr/local/bin/docker-compose
- 查看docker启动状态并设置开机自启
[root@docker ~]# systemctl start docker && systemctl enable docker
- 查看docker-compose版本
[root@docker ~]# docker-compose -v
二、使用docker-compose安装nextcloud和MySQL
- 执行docker-compose安装nextcloud和MySQL
[root@docker ~]# cd /root/nextcloud
[root@docker ~]# docker-compose up -d
- 查看运行的容器
[root@docker nextcloud]# docker ps
- 打开浏览器,输入http://IP
- 配置nextcloud显示的语言
[root@docker ~]# docker exec -it nextcloud-app-1 bash
- 配置语言基础参数,先要安装vim,docker没有这个vim,默认没哟安装
root@6cfe2bbf1eaf:/var/www/html# apt-get update
root@6cfe2bbf1eaf:/var/www/html# apt-get install vim -y
root@6cfe2bbf1eaf:/var/www/html# vim config/config.php
- 安装php-imagick 模块
root@6cfe2bbf1eaf:/var/www/html# apt-get install php-imagick -y
- 在宿主机中配置后台任务Cron
[root@docker ~]# crontab -u www-data -e
*/5 * * * * docker exec --user www-data nextcloud_app_1 php -d memory_limit=-1 -f /var/www/html/cron.php > /dev/null
- 在安装nextcloud最后一步会出现如下错误时
- 解决办法:登录到bash里给nextcloud的文件夹授权就可以解决问题
root@nextcloud:~/nextcloud# docker exec -it nextcloud-app-1 bash
root@d3ec01a9457d:/var/www/html# chown -R www-data:www-data /var/www/html/data
- 检查nextcloud的版本
root@nextcloud:~/nextcloud# docker exec --user www-data nextcloud-app-1 php /var/www/html/occ status
- 检查nextcloud的版本是否有更新
root@nextcloud:~/nextcloud# docker exec --user www-data nextcloud-app-1 php /var/www/html/occ upgrade
二、安装后升级以及后续修复一些问题
- docker-compose 升级步骤:在此之前重要的事情说3遍:先备份,先备份,先备份,再操作
- 执行拉取动作
root@nextcloud:~/nextcloud# docker-compose pull
- 把nextcloud升级的过程放在后台运行
root@nextcloud:~/nextcloud#docker-compose up -d
- 可以使用命令查看后台运行什么?
root@nextcloud:~/nextcloud# ps -ef
- 升级完成后修复,如:修复索引错误:occ db:add-missing-indices
root@nextcloud:~# docker exec --user www-data nextcloud-app-1 php occ db:add-missing-indices
- 时间同步问题:
root@nextcloud:~#docker exec --user www-data nextcloud-app-1 php -f cron.php
再次检查一下计划任务:
[root@docker ~]# crontab -u www-data -
*/5 * * * * docker exec --user www-data nextcloud_app_1 php -d memory_limit=-1 -f /var/www/html/cron.php > /dev/null
总结:
- 需要提前配置好你的docker源。
- 更新docker-compose源,下载docker-compose这个工具,关键是这个工具去控制这个docker-compose.yml
脚本来执行任务。 - 需要知道这个docker-compose把你安装的文件到底放在那里去了;默认情况下安装完docker后数据都会放在这个/var/lib/docker/volumes文件夹下面,你可以去检查一下。
- 升级nextcloud默认是不会把你的数据干掉,但是保险还是先备份再操作,再不济你先给虚拟机做个快照也好。