1. 离线安装docker
2. Docker-compose安装nextcloud
Compose 简介
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
- 使用 Dockerfile 定义应用程序的环境。
- 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
- 最后,执行 docker-compose up 命令来启动并运行整个应用程序。
2.1. 下载可执行文件docker-compose
文件名:docker-compose-linux-x86_64
下载链接:https://github.com/docker/compose/releases/tag/v2.5.0
2.2. 上传文件至服务器的
/usr/local/bin/文件夹,并将文件改名为docker-compose
[root@localhost bin]# ls -l /usr/local/bin/
-rwxr-xr-x 1 root root 26525696 Jun 9 20:08 docker-compose
添加运行权限
chmod +x /usr/local/bin/docker-compose
验证docker-compose命令
[root@localhost bin]# docker-compose -v
Docker Compose version v2.5.0
3. Nextcloud的docker-compose部署方法
3.1 创建用于保存nextcloud配置和文件的目录
mkdir -p /nextcloud/nginx # 存放nginx配置
mkdir -p /nextcloud/db # 存放数据库文件
mkdir -p /nextcloud/app # 存放nextcloud程序包,以后出现问题了可以修改里面的php配置文件
切换到/nextcloud/文件夹下创建docker-compose.yaml
cd /nextcloud/
nano docker-compose.yaml
输入以下内容
version: '2'
#volumes:
#nextcloud:
#db:
services:
db:
image: mariadb:10.5
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
networks:
- nextcloud_netbridge
volumes:
- /nextcloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
restart: always
ports:
- 8080:80
networks:
- nextcloud_netbridge
links:
- db
volumes:
- /nextcloud/app:/var/www/html
environment:
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
networks:
nextcloud_netbridge:
driver: bridge
此处端口映射为8080,需要修改端口映射可以将上面的ports-8080修改为其他
3.2 启动集成配置
docker-compose -f /nextcloud/docker-compose.yaml up -d
浏览器输入http://ip:8080 访问nextcloud
首次进入Nextcloud需要创建管理员账号及密码
3.3 检查docker ps
[root@localhost bin]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
300be5d45332 nextcloud "/entrypoint.sh apac…" About an hour ago Up About an hour 0.0.0.0:8080->80/tcp, :::8080->80/tcp nextcloud-app-1
2621cf24e786 mariadb:10.5 "docker-entrypoint.s…" About an hour ago Up About an hour 3306/tcp nextcloud-db-1
4. 安装onlyoffice服务及调试
4.1 docker下载onlyoffice镜像
docker pull onlyoffice/documentserver
4.2 docker安装onlyoffice
docker run -i -t -d -p 6060: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 --name onlyoffice --restart="always" onlyoffice/documentserver
4.3 检查docker ps,可见容器onlyoffice/documentserver,ID为65bc4910764a
[root@localhost bin]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
300be5d45332 nextcloud "/entrypoint.sh apac…" About an hour ago Up About an hour 0.0.0.0:8080->80/tcp, :::8080->80/tcp nextcloud-app-1
2621cf24e786 mariadb:10.5 "docker-entrypoint.s…" About an hour ago Up About an hour 3306/tcp nextcloud-db-1
65bc4910764a onlyoffice/documentserver "/app/ds/run-documen…" About an hour ago Up About an hour 443/tcp, 0.0.0.0:6060->80/tcp, :::6060->80/tcp onlyoffice
4.4 启动之后登录 ip:6060,等待五分钟后可以正常访问页面
5. 配置nextcloud连接onlyoffice
5.1 登录以下网址下载连接器:https://apps.nextcloud.com/apps/onlyoffice
此处安装的nextcloud版本是23.0.0,对应onlyoffice连接器是7.4.8
5.2 上传压缩包
onlyoffice.tar.gz到目录/nextcloud/app/apps
解压缩:
tar -zvxf onlyoffice.tar.gz
修改权限
chown -R root:root onlyoffice
5.3 打开Nextcloud-应用,在“已禁用的应用”处可以看到新的onlyoffice连接器,点击“启用”
5.4 打开“设置”菜单-“ONLYOFFICE”,输入ONLYOFFICE Docs地址为 ip:6060
5.5 测试,已经可以打开文件中的office文件,共享后可以实现协同编辑
参考资料:Docker部署Nextcloud及其使用方法
参考资料:docker搭建nextcloud与onlyoffice(最详细)