论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
云原生
›
使用 Docker 当地部署 onlyoffice 协作空间(社区版) ...
使用 Docker 当地部署 onlyoffice 协作空间(社区版)
梦见你的名字
金牌会员
|
2025-3-21 18:20:14
|
显示全部楼层
|
阅读模式
楼主
主题
926
|
帖子
926
|
积分
2778
使用 Docker 当地部署 onlyoffice 协作空间(社区版)
第一次使用Docker,有一些解释可能不太正确,如有错误,还请指出。
Docker 预备工作
预备工作:下载 Docker,下载后 Docker 会提示 sign in,可以自由选择是否登录,功能都可以正常使用,此时页面如下:
点击设置,将提示的更新与安装全都操作一遍
⚠️ Windows 必要安装并启用 Linux 子体系(WSL)可以参考CSDN文章:WSL的安装与使用 (超具体图文版安装教程) 举行操作。
Onlyoffice 之 DocumentServer
安装带有全面协作功能的 onlyoffice 则使用下面的内容,这里的 JWT 先设置为 false
sudo docker run -i -t -d -p <PORT_NUMBER>:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
复制代码
上面的 <
ORT_NUMBER> 可以本身任意写一个值,比如 1212 ,并且这里的 my_jwt_secret 改为 false ,也就是下面的内容:
sudo docker run -i -t -d -p 1212:80 --restart=always -e JWT_SECRET=false onlyoffice/documentserver
复制代码
输入暗码后,会出现下面的内容:
Unable to find image 'onlyoffice/documentserver:latest' locally
复制代码
不用担心,只要网络没问题,会自动下载的。如果没有自动下载那就本身手动拉取。在终端中使用下令行拉取 documentserver 镜像(不写版本则默认最新版)
docker pull onlyoffice/documentserver
复制代码
运行完毕后可以去 Docker 查看,可以发现 Images 已经装好了,这个时间Docker 的 Images 页面也出现 onlyoffice/documentserver
然后根据 onlyoffice/documentserver 镜像创建并启动容器,可以本身设置端口号,这里我设定的是9631:80 ,安装官网我这里的测试直接写 false
docker run -i -t -p 9631:80 --restart=always -e JWT_ENABLED=false onlyoffice/documentserver
复制代码
接着在浏览器中输入localhost:9631 ,大概输入本机的 IP 地点,页面如下所示
直接点击下面的测试样例会出现 502 Bad Gateway 的错误提示,不用担心,只必要根据页面上的提示,把三个下令依次实行,之后再点击就可以正常查看,页面如下所示
可能出现的问题
不外这里点击Create new 下面的任何格式文件后,可能会出现下面的情况
原本我也被迷惑了,以为是 localhost 无法被辨认的问题,不外查询 onlyoffice 文档 后发现遗漏了下面内容:
/var是 Linux 体系中一个常用的目次,用于存放体系运行时变化的数据 。像日记文件、缓存文件、数据库文件、以及网站相关的数据(如证书)等都存放在/var目次下的子目次中。
也就是说必要在创建容器的时间举行一些设置,如许后续方便修改数据,比如文档增删改查、用户权限等。
使用的方法是挂载-v,将主机上的文件与容器内的某个文件建立关联。
举例:团队协作修改文档,相当于团队成员有了一个公共的文件柜来存放共同编辑的文档。
同步更新:团队成员 A 在容器中编辑文档时,容器内存储该文档的目次(比如为 /var/www/onlyoffice/Data )里的文档内容发生了改变;在挂载的作用下,主机上的目次 /app/onlyoffice/DocumentServer/data 目次里面对应的文档也同步更新;
数据持久化:即使容器重新启动大概删除重建,文档数据已然保存在主机的/app/onlyoffice/DocumentServer/data 目次中;
管理:团队管理员可以直接在主机上管理文档数据;
解决方法
文档提供的对应代码如下:
sudo docker run -i -t -d -p 80:80 --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_SECRET=my_jwt_secret onlyoffice/documentserver
复制代码
看来大概是由于没有举行数据挂载。考虑到在终端中一行代码最方便,把代码修改一下,并且修改 JWT 为 false:
sudo docker run -i -t -d -p 80:80 --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_SECRET=false onlyoffice/documentserver
复制代码
所以在启动的时间设置一下挂载即可。
留意:必要提前在 C 盘下面创建上面涉及到的几个文件夹,这是为了将容器中的文件与当地文件举行关联。此时就能正常创建新文件了,如下所示:
可以查看新建的当地文件夹(本身手动建立大概使用mkdir 下令)。
不外上面这些只是测试用例,我们必要的是协作空间管理功能,也就是community server
Onlyoffice 之 CommunityServer
这一部门在 OnlyOffice 官网没有展示,具体操作可以在GitHub 上的 Docker-CommunityServer 项目找到,所以下面步骤基本上是 README 文档上的内容。
当地创建文件夹
在主机上新建文件夹用来存放容器中的文件。涉及到 MySQL Server、Community Server、Document Server、Mail Server、Control Panel 五个部门。
不嫌麻烦也可以本身手动创建,每个子目次就不展示了
文件夹创建好之后,创建 onlyoffice 的网络:
sudo docker network create --driver bridge onlyoffice
复制代码
网络驱动为桥接模式,它会在体系中创建一个可用于 ONLYOFFICE 相关容器毗连的网络环境,以便差别的 ONLYOFFICE 组件(如 Community Server、Document Server、Mail Server 等)可以在同一个网络中举行通信。
可以使用下面的下令查看容器的网络模型,<容器ID>替换为对应容器的 ID:
docker inspect --format='{{.HostConfig.NetworkMode}}' <容器ID>
复制代码
图片内容具体寄义:
第一个为 onlyoffice/documentserver 创建的容器,网络模式为 bridge
第二个为 onlyoffice/communityserver 创建的容器,网络模式为 bridge
第三个为 MySQL 创建的容器,网络模式为 onlyoffice
MySQL
将 MySQL 的配置信息(最大毗连数、数据包大小等)写入到并存储在/app/onlyoffice/mysql/conf.d/onlyoffice.cnf 文件中:
echo "[mysqld]
sql_mode = 'NO_ENGINE_SUBSTITUTION'
max_connections = 1000
max_allowed_packet = 1048576000
group_concat_max_len = 2048" > /app/onlyoffice/mysql/conf.d/onlyoffice.cnf
复制代码
下面安装使用Community Server 和 Mail Server 所需条件:
onlyoffice_user 是 Community Server 所必需的用户
mail_admin 是在安装 Mail Server 的情况下所必需的用户
echo "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
CREATE USER IF NOT EXISTS 'onlyoffice_user'@'%' IDENTIFIED WITH mysql_native_password BY 'onlyoffice_pass';
CREATE USER IF NOT EXISTS 'mail_admin'@'%' IDENTIFIED WITH mysql_native_password BY 'Isadmin123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'onlyoffice_user'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'mail_admin'@'%';
FLUSH PRIVILEGES;" > /app/onlyoffice/mysql/initdb/setup.sql
复制代码
脚本的具体内容包括:
修改 root 用户的暗码认证方式为 mysql_native_password 并设置暗码
创建 onlyoffice_user 和 mail_admin 用户,同样使用 mysql_native_password 认证方式并设置相应暗码(Isadmin123)
为 root、onlyoffice_user 和 mail_admin 用户授予对所有数据库和表的所有权限
最后刷新权限
接着操作,创建 MySQL 容器:
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-mysql-server -v /app/onlyoffice/mysql/conf.d:/etc/mysql/conf.d -v /app/onlyoffice/mysql/data:/var/lib/mysql -v /app/onlyoffice/mysql/initdb:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=onlyoffice mysql:8.0.29
复制代码
Community Server
安装 Community Server:
sudo docker run --net onlyoffice -i -t -d --privileged --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 --cgroupns=host -e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw -e MYSQL_SERVER_DB_NAME=onlyoffice -e MYSQL_SERVER_HOST=onlyoffice-mysql-server -e MYSQL_SERVER_USER=onlyoffice_user -e MYSQL_SERVER_PASS=onlyoffice_pass -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice -v /app/onlyoffice/CommunityServer/letsencrypt:/etc/letsencrypt -v /sys/fs/cgroup:/sys/fs/cgroup:rw onlyoffice/communityserver
复制代码
数据存储配置
下面是容器中数据存储的情况:
/var/log/onlyoffice Community Server logs
/var/www/onlyoffice/Data Community Server data
/etc/letsencrypt information on generated certificates,是用于保障服务器通信安全的文件
下面是容器中的数据与当地数据举行关联的操作:
sudo docker run -i -t -d -p 80:80 --cgroupns=host -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/CommunityServer/letsencrypt:/etc/letsencrypt -v /sys/fs/cgroup:/sys/fs/cgroup:rw onlyoffice/communityserver
复制代码
为了制止端口冲突可以用下面的下令替换上面的下令:
sudo docker run -i -t -d --privileged -p 8080:80 --cgroupns=host -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/CommunityServer/letsencrypt:/etc/letsencrypt -v /sys/fs/cgroup:/sys/fs/cgroup:rw onlyoffice/communityserver
复制代码
别的还有一些额外的毗连
sudo docker run -i -t -d --privileged -p 80:80 -p 443:443 -p 5222:5222 --cgroupns=host -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data -v /app/onlyoffice/CommunityServer/letsencrypt:/etc/letsencrypt -v /sys/fs/cgroup:/sys/fs/cgroup:rw onlyoffice/communityserver
复制代码
sudo docker run -i -t -d -p 8080:80 -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/rabbitmq:/var/lib/rabbitmq -v /app/onlyoffice/DocumentServer/redis:/var/lib/redis -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql onlyoffice/documentserver
复制代码
同时打开创建的 Community Server 的容器以及 Document Server 之后,页面如下所示:
按照要求举行注册就可以得到下面的页面:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
梦见你的名字
金牌会员
这个人很懒什么都没写!
楼主热帖
【docker系列】四种基础网络模式及自定 ...
MySQL高可用架构搭建实战
小白怎么入门网络安全?看这篇就够啦! ...
'林子雨大数据' 实验3 HBase操 ...
kubernetes常用命令-1-命令补全 ...
1.1 大数据简介-hadoop-最全最完整的保 ...
Cilium系列-9-主机路由切换为基于 BPF ...
这些行业注意了:“谨防互联网门户钓鱼 ...
北京智游科技(爱加密)-渗透测试实习 ...
【OpenCV 例程200篇】203. 伪彩色图像 ...
标签云
运维
CIO
存储
服务器
浏览过的版块
DevOps与敏捷开发
人工智能
快速回复
返回顶部
返回列表