CentOS9 安装Docker+Dpanel+onlyoffice(https、更改字体、字号、去除限制)的避坑笔记

CentOS9 安装Docker+onlyoffice(https、更改字体、字号、去除文件大小限制)的避坑笔记

动手前,预防遭遇各种莫名奇妙的问题,先把selinux给disabled掉:

bash 复制代码
nano /etc/selinux/config

SELINUX=enforcing,改为:SELINUX=disabled,然后reboot一下系统。

一、安装Docker

1.方法一:使用docker执行脚本安装:

复制代码
curl -sSL https://get.docker.com/ | sh 

2.方法二:使用dnf安装:

添加docker仓库:

复制代码
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

安装docker:

bash 复制代码
dnf install docker-ce

安装完毕后,在执行:

bash 复制代码
#设为开机启动
systemctl enable --now docker

#启动docker
systemctl start docker

#查看状态
systemctl status docker

#查看版本
docker -v

二、更新docker镜像源:

由于某种原因,国内从DockerHub拉取镜像速度会很慢,反正我这里根本无法使用,所以找了一些可用的源,把源添加到:/etc/docker/daemon.json就可以了

bash 复制代码
nano /etc/docker/daemon.json

把下面内容复制进去,然后ctrl+o,ctrl+x保存退出:

bash 复制代码
{
	 "registry-mirrors": [
	 	"https://docker.registry.cyou",
        "https://docker-cf.registry.cyou",
        "https://dockercf.jsdelivr.fyi",
        "https://docker.jsdelivr.fyi",
        "https://dockertest.jsdelivr.fyi",
        "https://mirror.aliyuncs.com",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.iscas.ac.cn",
        "https://docker.rainbond.cc"
	 ]
}

重启docker:

bash 复制代码
systemctl daemon-reload
systemctl restart docker

至此,我们的docker已经可以正常使用了。

三、安装Dpanel

用途和使用就不说了,详见官方介绍,官方地址:https://dpanel.cc

我选择的是lite版:

bash 复制代码
docker run -it -d --name dpanel --restart=always \
 -p 8807:8080 -e APP_NAME=dpanel \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v dpanel:/dpanel dpanel/dpanel:lite

防火墙放行8807端口:

bash 复制代码
firewall-cmd --add-port=8807/tcp --permanent
firewall-cmd --reload

好了,你的dpanel面板已经安装好了,打开你的浏览器访问:http://你的IP:8807

四、安装onlyoffice(开启https及一些碰到的问题)

1.执行下面命令,安装onlyoffice社区版,目前最新版本为8.2.2,

bash 复制代码
docker run -i -t -d -p 443:443 --name office --restart=always \
    -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \
    -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  \
    -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
    -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_ENABLED=false onlyoffice/documentserver

2.防火墙放行443端口:

bash 复制代码
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

3.添加证书:

进入:/app/onlyoffice/DocumentServer/data目录,mkdir certs创建certs目录,然后把证书上传到这个目录下。

我用的是mkcert生成的自签证书,如果你对mkcert有兴趣,可以到我另一个帖子看:https://blog.csdn.net/alinathz/article/details/106440017

mkcert生成出来的是pem文件,这里需要把证书和key都改名为:

证书改名为:onlyoffice.crt

key改名为:onlyoffice.key

接着把证书上传到/app/onlyoffice/DocumentServer/data/certs目录下。

4.开启https访问:

A.在容器输入:service nginx stop,把容器的nginx停用掉;

B.复制ds-ssl.conf.tmpl替换ds.conf文件:

复制代码
sudo cp -f /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds.conf

C.修改/etc/onlyoffice/documentserver/nginx/ds.conf文件,把里面的{{SSL_CERTIFICATE_PATH}} 和{{SSL_KEY_PATH}} 替换为证书的路径:

复制代码
nano /etc/onlyoffice/documentserver/nginx/ds.conf

# 证书
ssl_certificate /var/www/onlyoffice/Data/certs/onlyoffice.crt;
# 证书key
ssl_certificate_key /var/www/onlyoffice/Data/certs/onlyoffice.key;

D.修改完后,重启容器的nginx:service nginx start

E.执行下面的脚本:

复制代码
bash /usr/bin/documentserver-update-securelink.sh

5.进入onlyoffice容器修改/etc/onlyoffice/documentserver/default.json

进入onlyoffice容器,我们上面创建的是office,so...

bash 复制代码
docker exec -it office /bin/bash

进入后粗暴些,直接:nano /etc/onlyoffice/documentserver/default.json,找到:

bash 复制代码
"requestDefaults": {
      "headers": {
                "User-Agent": "Node.js/6.13",
                "Connection": "Keep-Alive"
        },
        "gzip": true,
        "rejectUnauthorized": true
}

"rejectUnauthorized": true 改为 "rejectUnauthorized": false,这个是解决自签证书无法访问未授权的问题。

接着,找到:

bash 复制代码
"request-filtering-agent" : {
        "allowPrivateIPAddress": false,
        "allowMetaIPAddress": false
}

把两个false改为true,这个解决无法打开document.url指向的文件,提示"无法下载"的问题。

好了,经过上面的操作,你现在可以用https://docker服务器地址,来访问你的onlyoffice了。

我打算用它的API,直接来编辑我网站里面的文档,所以做了一个测试:

bash 复制代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>ONLYOFFICE Document Editor Code Sample</title>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <style>body {height: 100vh; margin: 0}</style>
    <script src="https://docker服务器地址/web-apps/apps/api/documents/api.js"></script>
  </head>
  <body>
    <div id="placeholder"></div>
    <script type="module">
    const config = {
      document: {
        fileType: "docx",
        key: "随机生成的KEY",
        title: "Playground Document",
        url: "https://你的网站地址/test.docx"
      },
      documentType: "word",
      editorConfig: {
        lang: "zh"
      },
      height: "100%",
      width: "100%"
    }
    const editor = new DocsAPI.DocEditor("placeholder", config)
    </script>
  </body>
</html>

然后直接访问上面的html文件,如果可以直接看到test.docx的内容,那就证明已经OK了。

五、更改字体和字号

刚刚发现,字号显示是正常的,所以不用改,哈哈...现在说说怎么换上自己的字体吧!

1、进入onlyoffice容器,我们上面创建的是office,so...

bash 复制代码
docker exec -it office /bin/bash

2、删除自带的字体,有两个目录:

复制代码
cd /usr/share/fonts/
rm -rf *

cd /var/www/onlyoffice/documentserver/core-fonts/
rm -rf *

删除完后退出exit容器。

3、到c:\windows\fonts目录下面找需要用的字体,然后复制到其他地方;

4、把复制出来的字体,上传到宿主机上(U盘,tftp,MobaXterm等方式),如我复制到/home/fonts目录里,然后用下面命令复制到office容器里:

复制代码
docker cp /home/fonts office:/usr/share/fonts/truetype/custom

5、在进入容器docker exec -it office /bin/bash执行下面命令重新生成:

1000 复制代码
/usr/bin/documentserver-generate-allfonts.sh

重新生成完毕后,刷新下页面就可以看到改好的字体了。

六、去除限制

去除文件大小限制

参考:https://blog.csdn.net/g401946949/article/details/144337540

A.进入容器docker exec -it office /bin/bash,编辑/etc/onlyoffice/documentserver/default.json

复制代码
nano /etc/onlyoffice/documentserver/default.json

找到并修改limits_tempfile_upload(模板上传限制),maxDownloadBytes(最大下载限制),uncompressed(未压缩限制):

复制代码
limits_tempfile_upload:104857600(默认10M)
maxDownloadBytes:104857600(默认10M)
uncompressed:"50M"(默认50M)

根据需求自己修改,保存后,退出容器,重启容器:docker restart office

记录结束,希望可以帮到你。

相关推荐
两点王爷43 分钟前
IDEA中springboot项目中连接docker
spring boot·docker·intellij-idea
家庭云计算专家1 小时前
还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍
服务器·人工智能·docker·容器·编辑器
Fireworkitte2 小时前
CentOS 和 RHEL
linux·centos
Waitccy3 小时前
Tomcat 配置 HTTPS 访问全攻略(CentOS 环境)
https·centos·tomcat·安全整改
孤的心了不冷3 小时前
【Docker】CentOS 8.2 安装Docker教程
linux·运维·docker·容器·eureka·centos
头疼的程序员4 小时前
docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)
学习·docker·容器
IT小郭.4 小时前
使用 Docker Desktop 安装 Neo4j 知识图谱
windows·python·sql·docker·知识图谱·database·neo4j
淡水猫.4 小时前
hbit资产收集工具Docker(笔记版)
运维·docker·容器
旧故新长13 小时前
访问 Docker 官方镜像源(包括代理)全部被“重置连接”或超时
运维·docker·容器
white.tie13 小时前
Docker部署单节点Elasticsearch
elasticsearch·docker·jenkins