最新版nextcloud+onlyoffice(docker)安装步骤

迷南。 2021-09-26 18:00 2631阅读 0赞

docker

CentOS Docker 安装

参考地址

前提条件

目前,CentOS 仅发行版本中的内核支持 Docker。

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

查询版本

  1. cat /etc/redhat-release

使用 yum 安装

  1. uname -r ##查看内核版本是否符合要求

安装 Docker

  1. yum -y install docker-io
  2. service docker start #启动 Docker 后台服务

安装Compose

  1. curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  2. chmod +x /usr/local/bin/docker-compose
  3. docker-compose up -d #运行yml命令

测试docker

  1. docker run hello-world

由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。

镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com

  1. #重启
  2. service docker restart

— 以下这部分是docker介绍 —

Docker Hello World

Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。

  1. docker run ubuntu:15.10 /bin/echo "Hello world" #Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。

运行交互式的容器

我们通过docker的两个参数 -i -t,让docker运行的容器实现”对话”的能力

  1. docker run -i -t ubuntu:15.10 /bin/bash

各个参数解析:

  • -t:在新容器内指定一个伪终端或终端。
  • -i:允许你对容器内的标准输入 (STDIN) 进行交互。

我们尝试在容器中运行命令 cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表。

我们可以通过运行exit命令或者使用CTRL+D来退出容器。

启动容器

  1. docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

在容器内使用docker logs命令,查看容器内的标准输出

  1. docker logs ** #填写docker id

停止容器

  1. docker stop ** #填写docker id

运行一个web应用

接下来让我们尝试使用 docker 构建一个 web 应用程序。

我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。

  1. docker pull training/webapp
  2. docker run -d -P training/webapp python app.py

Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上。

这时我们可以通过浏览器访问WEB应用

进入容器

  1. docker exec -it <docker_name> /bin/bash

其中,/bin/bash有可能是/bin/sh,因为不一定所有的docker都安装了shell

卸载docker

  1. rpm -e docker-io

卸载Docker后,/var/lib/docker/目录下会保留原Docker的镜像,网络,存储卷等文件. 如果需要全新安装Docker,需要删除/var/lib/docker/目录

  1. rm -fr /var/lib/docker/

卸载镜像

  1. 删除前需要保证容器是停止的 stop
  2. 需要注意删除镜像和容器的命令不一样。 docker rmi ID ,其中 容器(rm) 和 镜像(rmi)
  3. 顺序需要先删除容器

    docker rmi 镜像id

修改已经存在的docker容器的映射端口

  1. 停止容器
  2. 停止docker
  3. 进入 /var/lib/docker/containers/ 容器ID的文件夹
  4. 修改config.v2.json和hostconfig.json
  5. 启动docker
  6. 启动容器

— docker介绍到此为止—


nextcloud

先下载镜像

关闭selinux

yml配置文件

  1. nextcloud-db: image: mariadb container_name: nextcloud_db ports: - 33034:3306 volumes: - /cloud/mysql/data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=rootPW1234 - MYSQL_DATABASE=nextcloud - MYSQL_USER=dbuser - MYSQL_PASSWORD=dbuser1234 - MYSQL_ROOT_HOST=% nextcloud_web: image: wonderfall/nextcloud container_name: nextcloud_web environment: - UID=1000 - GID=1000 - UPLOAD_MAX_SIZE=10G - APC_SHM_SIZE=128M - OPCACHE_MEM_SIZE=128 - CRON_PERIOD=15m - TZ=Aisa/Shanghai - ADMIN_USER=admin - ADMIN_PASSWORD=admin1234 - DOMAIN=*** #你的域名 - DB_TYPE=mysql - DB_NAME=nextcloud - DB_USER=dbuser - DB_PASSWORD=dbuser1234 - DB_HOST=nextcloud-db:3306 volumes: - /cloud/nextcloud/data:/data - /cloud/nextcloud/config:/config - /cloud/nextcloud/apps:/apps2 - /cloud/nextcloud/themes:/nextcloud/themes expose: - 8888 links: - nextcloud-db

office

collabora office

1. 拉取镜像

  1. docker pull collabora/code

2. 启动镜像

容器运行命令

  1. docker run -t -d -p 0.0.0.0:9980:9980 -e 'domain=***\\.***\\.**' -e "username=admin" -e "password=123456" --restart always --cap-add MKNOD collabora/code
  2. ##domain处填写nextcloud的域名,小数点前面是两个\

测试是否成功安装命令

  1. https://你的域名地址/loleaflet/dist/admin/admin.html

Nginx配置文件

  1. ## collabora office server { listen 443 ssl; server_name 你的域名地址; ssl_certificate /cloud/nginx/ssl/collabora.crt; ssl_certificate_key /cloud/nginx/ssl/collabora.key; # static files location ^~ /loleaflet { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; } # WOPI discovery URL location ^~ /hosting/discovery { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; } # main websocket location ~ ^/lool/(.*)/ws$ { proxy_pass https://localhost:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } # download, presentation and image upload location ~ ^/lool { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; } # Admin Console websocket location ^~ /lool/adminws { proxy_pass https://localhost:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } }

重启docker 服务

  1. systemctl daemon-reload
  2. 启动Nginx

onlyoffice

1. 拉取镜像

  1. docker pull onlyoffice/documentserver

2. 前期准备

  1. mkdir -p /cloud/onlyoffice/DocumentServer/logs
  2. mkdir -p /cloud/onlyoffice/DocumentServer/data
  3. mkdir -p /cloud/onlyoffice/DocumentServer/data/certs #复制证书文件到此文件夹,证书改名onlyoffice

3. 启动容器

  1. docker run -i -t -d -p 9443:443 -v /cloud/onlyoffice/DocumentServer/logs:/var/log/onlyoffice -v /cloud/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data --name onlyoffice onlyoffice/documentserver

4. docker配置文件

  1. ## office
  2. server {
  3. listen 443 ssl;
  4. server_name 你的域名;
  5. ssl on;
  6. ssl_certificate /cloud/nginx/ssl/onlyoffice.crt;
  7. ssl_certificate_key /cloud/nginx/ssl/onlyoffice.key;
  8. ssl_session_timeout 1d;
  9. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ##根据证书来改
  10. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  11. ssl_prefer_server_ciphers on;
  12. location / {
  13. proxy_redirect off;
  14. proxy_pass https://localhost:9443;
  15. proxy_set_header Host $http_host;
  16. proxy_set_header X-Real-IP $remote_addr;
  17. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  18. }
  19. }

4. 重启docker服务

  1. systemctl daemon-reload
  2. 重启Nginx

5. 测试地址

https://服务器地址:9443/

暂时关闭SELinux

参考引用

collabora office

only office

发表评论

表情:
评论列表 (有 0 条评论,2631人围观)

还没有评论,来说两句吧...

相关阅读

    相关 新版Java安装教程

    现在网上的Java安装教程都是针对旧版Java的,现在Oracle上下载的Java只有一个压缩包,并不像老教程里的jdk、jre要下两个包,配置环境变量也不需要再配置class