云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统

Docker秒级启动NextCloud个人网盘存储办公系统

首先讲解一下我的环境,我没有新建虚拟机,做上一个项目的时候在ping通外网后我给拍摄快照了,所以我就直接恢复快照了,小朋友不要和我学习哦,尽量新建虚拟机or克隆一个node出来,保证环境的干净,不然端口容易冲突,配置文件也是容易改错,最后导致实验失败。

这次依旧是openeuler 22.03的镜像,处理器1个2核的,4GB的内存,20GB的存储

打开虚拟机后先检查是否ping通外网,然后依旧关闭selinux,firewalld,然后就可以开始接下来的操作了。

1、安装基础工具和 docker 源

1.1安装基础工具和 DNF 插件

dnf install -y dnf-utils vim tar tree net-tools

1.2添加 Docker 源

dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

openEuler 22.03 兼容 CentOS 8,所以把版本变量替换为 8

sed -i 's/$releasever/8/g' /etc/yum.repos.d/docker-ce.repo

2、安装 Docker 并启动

dnf install docker-ce -y

systemctl enable --now docker

docker -v

查看版本

3、配置加速器(防止拉取镜像卡死)

可以去找ai索取怎么获得加速器的专属链接,在此只展示通用的镜像源

bash 复制代码
mkdir -p /etc/docker
cat << EOF > /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.1panel.live/"
  ]
}
EOF

root@nextcloud \~# systemctl daemon-reload

root@nextcloud \~# systemctl restart docker

root@nextcloud \~#

4、拉取镜像

有科学上网的可以去用科学上网(实测更快一点)

docker pull nextcloud

docker pull mysql:8.0.37

docker pull onlyoffice/documentserver

bash 复制代码
[root@nextcloud ~]# docker images
REPOSITORY                  TAG       IMAGE ID       CREATED                  SIZE
nextcloud                   latest    b5cf942dc492   Less than a second ago   1.48GB
onlyoffice/documentserver   latest    82ba611d7112   3 weeks ago              2.1GB
mysql                       8.0.37    8279f68ee77d   2 years ago              567MB
[root@nextcloud ~]# 

5、数据库,nextcloud,onlyoffice配置

5.1数据库

先进行数据库的配置,密码依旧123456

bash 复制代码
[root@nextcloud ~]# docker run -p 3306:3306 --name mysql --restart="always" \

> -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:8.0.37
> 7ed952c7c568770a7bd5ac7813ec29fdb8ed58d4a849309e7445938ee06b0f9e
复制代码
[root@nextcloud ~]# docker exec -it 7ed952c7c568  /bin/bash
bash-5.1# mysql -uroot -p123456

mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.01 sec)

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> create database nextcloud;
Query OK, 1 row affected (0.01 sec)

mysql> q
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'q' at line 1
mysql> quit;
Bye
bash-5.1# exit
exit
[root@nextcloud ~]# 

5.2nextcloud配置

5.2.1创建工作目录
bash 复制代码
mkdir -p /root/nextcloud/{html,apps,config,themes,data}
5.2.2启动 Nextcloud 容器
bash 复制代码
docker run -d \
-v /root/nextcloud/html:/var/www/html \
-v /root/nextcloud/apps:/var/www/html/custom_apps \
-v /root/nextcloud/config:/var/www/html/config \
-v /root/nextcloud/data:/var/www/html/data \
-v /root/nextcloud/themes:/var/www/html/themes \
-p 80:80 \
--name nextcloud \
--restart="always" \
nextcloud

在浏览器中然后输入自己的ip地址,不用输入端口号,因为映射的是80端口

打开后,就是这个界面,用户名随意,密码要记住,然后点击MySQL/MariaDB,输入在虚拟机里数据库的用户名和密码,再输入一次ip地址以及数据库的端口号,点击安装。

然后就会一直转圈,等个几分钟就ok了。

记得点击跳过下载应用

5.3启动 OnlyOffice 容器

bash 复制代码
[root@nextcloud ~]# docker inspect nextcloud:latest | grep -i version
        "DockerVersion": "",
                "PHP_VERSION=8.5.12",
                "NEXTCLOUD_VERSION=35.0.2"
[root@nextcloud ~]# 

查看自己的版本,然后去下载对应的,我的是35版本,所以我下35的

启用的时候会让输入密码,输入完后就启用了,然后在已启用的里面去找

由于onlyoffice7.2之后需要密钥才能连接,那么接下来获取密钥

如果出现下面这种报错就要敲下面那两行命令了,因为 Nextcloud 内部可能拦截了内网 IP。我们需要手动进 Nextcloud 容器里改一下它的底层配置。

root@nextcloud apps# docker exec -u www-data nextcloud php occ config:system:set allow_local_remote_servers --type=boolean --value=true

System config value allow_local_remote_servers set to boolean true

root@nextcloud apps# docker exec -u www-data nextcloud php occ config:system:set allow_local_remote_servers --type=boolean --value=true

System config value allow_local_remote_servers set to boolean true

root@nextcloud apps#

然后去nextcloud主页点击左上角的文件,创建文件,看看是否会保存

6、内网穿透(Cpolar)

https://www.cpolar.com/

去官网注册账号,然后登录,找这个

然后复制输入这一长串(别把$输进去)

然后输入

复制代码
chmod +x cpolar 

./cpolar http 80

再开一个终端,修改 config.php 的格式:"在 trusted_domains 数组里添加 1 => '62dc9e20.r6.cpolar.cn'(填你自己上一步骤的公网地址,别填我的)一定要带英文的逗号,不要破坏 PHP 的数组语法。" 这一步很容易因为少个逗号导致 Nextcloud 白屏打不开。

vim /root/nextcloud/config/config.php

进入编辑器后可以输入 /trusted_domains 然后回车,就可以找到了

把上一步骤的公网地址输进去,给nextcloud添加信任

然后打开那串公网地址

正文到这里就结束了,但我想说的是up主最近一直失眠,早上很早就醒了,睡觉的时候稍微有点动静就会醒,对什么都提不起兴趣,整个人好似杨威了一般。

相关推荐
腾飞开源37 分钟前
03_Kubernetes 核心概念拆解:从 Spec/Status 收敛到工作负载控制器的设计逻辑
云原生·容器·kubernetes
小南家的青蛙2 小时前
微服务体系下DevOps运维岗位面试方案设计
运维·面试·职场和发展·devops
知已难寻12 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
默|笙12 小时前
【Linux网络】网络层协议 IP(1)理解报头、网段划分
linux·网络·tcp/ip
修己xj15 小时前
nslookup 使用指南:两种模式与常用查询技巧
linux
唠玖馆17 小时前
文件系统详解
linux·文件系统·ext2
xbzb17 小时前
镜像到底存在哪:/var/lib/docker 的四级映射与 daemon.json 配置
docker·容器·json·镜像·daemon.json·四级
GeW17 小时前
当Linux内核开始“确定性”,制造高端化才有了底层语法
linux
阿里云云原生17 小时前
生产更可信,订阅更耐用丨Higress 社区进展报告
云原生