基础环境

系统 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

启用服务

创建并启动

  1. 使用–name参数命名为mariadb
  2. --env配置数据库用户名:nextcloud,root用户密码:nextcloud(根据个人修改成复杂密码),数据卷:nextcloud。
  3. 最后使用–restart=always配置Docker启动服务时mariadb容器随之启动。
  4. 使用–name参数命名为nextcloud,
  5. 使用-p参数将NextCloud容器的80端口映射到宿主机8080端口。
  6. --link 创建的nextcloud容器网络连接至mariadb数据库容器。
  7. 最后使用–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



  1. # 启动nextcloud容器
[root@localhost ~]#docker run -it -d -p 8080:80 --name nextcloud  --link mariadb  --restart=always -v nextcloud_data:/var/www/html
nextcloud
  1. # 检查
[root@localhost ~]#docker ps
  1. docker ps 检查容器是否正常启用,以及浏览器访问http://{{云服务器公网ip}}:8080是否正常显示界面




初始化nextcloud

创建管理员账号

用户自定义账号密码

配置数据库

  1. 点击界面中的「存储与数据库」
  2. 数据目录填写:nextcloud (docker部署marialdb中配置的数据卷轴名)
  3. 点击展开栏中的「Mysql/MarialDB」,填写之前docker部署marialdb中配置的账号密码
  1. username:nextcloud
  2. password: nextcloud
  3. database: nextcloud
  4. host: mariadb


  1. 注册出现4047错误
    解决办法:需要修改 mariadb,关闭一个只读的设置
[root@localhost ~]#docker exec -it mariadb mariadb -u root -p

输入nextcloud进入数据库
# 输入创建容器时设定的密码

SET GLOBAL innodb_read_only_compressed=OFF;

避免每次重启容器都需修改mariadb,需进入容器后修改配置文件

  1. 首先,进入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

保存并关闭文件