0.前言

Docker版的NextCloud中自带有SQLite,但是官方不推荐用在有同步客户端的环境,因此我选择了使用MariaDB。

这里我给每个容器都配了一个独立IP

1.准备工作

首先是将两个镜像Pull下来

#MariaDB
docker pull mariadb

#NextCloud
docker pull nextcloud

创建Macvlan

#ens18请换成你的网卡,开启网卡混杂模式
ip link set ens18 promisc on

#创建macvlan
docker network create -d macvlan --subnet=192.168.123.0/24 --gateway=192.168.123.1 -o parent=ens18 macvlan

2.部署NextCloud

这里我将一个盘挂载到了 /data,将NextCloud的数据全部存进去,可以按照自己的配置进行修改

docker run -d \
    -v /data/nextcloud/nextcloud:/var/www/html \
    -v /data/nextcloud/apps:/var/www/html/custom_apps \
    -v /data/nextcloud/config:/var/www/html/config \
    -v /data/nextcloud/data:/var/www/html/data \
    -v /data/nextcloud/theme:/var/www/html/themes/ \
    --network macvlan --ip 192.168.123.111 \
    --restart=unless-stopped \
    --name nextcloud \
    nextcloud

3.部署Mairadb

同样也是给这个容器分配了一个IP

docker run -d --name mariadb \
    -v /data/mysql:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=你的密码 \
    --network macvlan --ip 192.168.123.112 \
    --restart=unless-stopped \
    mariadb

4.配置数据库

首先我们需要进入容器中

docker exec -it mariadb bash

进入容器后,以root身份登录进数据库

mysql -uroot -p

然后创建数据库及用户

#创建用户
CREATE USER 'nextcloud' IDENTIFIED by '你的密码';

#数据库
CREATE DATABASE IF NOT EXISTS nextcloud;

#授权
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud' IDENTIFIED BY '你的密码';

#检查数据库
show databases;

5.NextCloud配置

按下图填写,完成

只要没报错,等待其完成即可

分类: DockerLinux

0 条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据