基础环境
系统 centos7.9
内存 2G以上
磁盘 30G以上
安装部署
1、安装基础工具
[root@localhost ~]# yum -y install vim net-tools nmap tree lrzsz lsof
2、添加阿里docker源
[root@localhost ~]# wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装docker-ce (ce为免费社区版)
[root@localhost ~]# yum -y install docker-ce
4、配置阿里镜像加速(解决拉取镜像慢)
[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://bcd6gwnb.mirror.aliyuncs.com"]
}
5、Docker 启动和自启动
[root@localhost ~]#systemctl start docker.service
[root@localhost ~]#systemctl enable docker.service
6. 拉取 Docker 、mariadb镜像
# 拉取 nextcloud
[root@localhost ~]# docker pull nextcloud
# 拉取 mariadb
[root@localhost ~]#docker pull mariadb
# 检查以上镜像是否都拉取完成
[root@localhost ~]#docker images
创建数据卷
[root@localhost ~]#docker volume create mariadb_data
[root@localhost ~]#docker volume create nextcloud_data
启用服务
创建并启动
- 使用–name参数命名为mariadb
- --env配置数据库用户名:nextcloud,root用户密码:nextcloud(根据个人修改成复杂密码),数据卷轴:nextcloud。
- 最后使用–restart=always配置Docker启动服务时mariadb容器随之启动。
- 使用–name参数命名为nextcloud,
- 使用-p参数将NextCloud容器的80端口映射到宿主机8080端口。
- --link 创建的nextcloud容器网络连接至mariadb数据库容器。
- 最后使用–restart=always配置Docker启动服务时nextcloud容器随之启动
# 启动mariadb容器
[root@localhost ~]#docker run -it -d --name mariadb --env MARIADB_USER=nextcloud --env MARIADB_PASSWORD=nextcloud --env MARIADB_ROOT_PASSWORD=nextcloud --env MARIADB_DATABASE=nextcloud --restart=always -v mariadb_data:/var/lib/mysql mariadb
- # 启动nextcloud容器
[root@localhost ~]#docker run -it -d -p 8080:80 --name nextcloud --link mariadb --restart=always -v nextcloud_data:/var/www/html
nextcloud
- # 检查
[root@localhost ~]#docker ps
- docker ps 检查容器是否正常启用,以及浏览器访问http://{{云服务器公网ip}}:8080是否正常显示界面
初始化nextcloud
创建管理员账号
用户自定义账号密码
配置数据库
- 点击界面中的「存储与数据库」
- 数据目录填写:nextcloud (docker部署marialdb中配置的数据卷轴名)
- 点击展开栏中的「Mysql/MarialDB」,填写之前docker部署marialdb中配置的账号密码
- username:nextcloud
- password: nextcloud
- database: nextcloud
- host: mariadb
- 注册出现4047错误
解决办法:需要修改 mariadb,关闭一个只读的设置
[root@localhost ~]#docker exec -it mariadb mariadb -u root -p
输入nextcloud进入数据库
# 输入创建容器时设定的密码
SET GLOBAL innodb_read_only_compressed=OFF;
避免每次重启容器都需修改mariadb,需进入容器后修改配置文件
- 首先,进入MariaDB容器:
docker exec -it mariadb /bin/bash
在容器中,找到MariaDB的配置文件。通常位于/etc/mysql/mariadb.conf.d/
目录下
2.使用编辑器(如vim、nano等)打开MariaDB的配置文件
vim /etc/mysql/mariadb.conf.d/50-server.cnf
在配置文件中找到innodb_read_only_compressed
参数,并将其设置为OFF
。如果该参数不存在,则可以在文件的任何位置添加该参数
[mysqld]
innodb_read_only_compressed = OFF
保存并关闭文件