最新版nextcloud+onlyoffice(docker)安装步骤
docker
CentOS Docker 安装
参考地址
前提条件
目前,CentOS 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
查询版本
cat /etc/redhat-release
使用 yum 安装
uname -r ##查看内核版本是否符合要求
安装 Docker
yum -y install docker-io
service docker start #启动 Docker 后台服务
安装Compose
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose up -d #运行yml命令
测试docker
docker run hello-world
由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。
镜像加速
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com
#重启
service docker restart
— 以下这部分是docker介绍 —
Docker Hello World
Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。
docker run ubuntu:15.10 /bin/echo "Hello world" #Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。
运行交互式的容器
我们通过docker的两个参数 -i -t,让docker运行的容器实现”对话”的能力
docker run -i -t ubuntu:15.10 /bin/bash
各个参数解析:
- -t:在新容器内指定一个伪终端或终端。
- -i:允许你对容器内的标准输入 (STDIN) 进行交互。
我们尝试在容器中运行命令 cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表。
我们可以通过运行exit命令或者使用CTRL+D来退出容器。
启动容器
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
在容器内使用docker logs命令,查看容器内的标准输出
docker logs ** #填写docker id
停止容器
docker stop ** #填写docker id
运行一个web应用
接下来让我们尝试使用 docker 构建一个 web 应用程序。
我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。
docker pull training/webapp
docker run -d -P training/webapp python app.py
Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上。
这时我们可以通过浏览器访问WEB应用
进入容器
docker exec -it <docker_name> /bin/bash
其中,/bin/bash有可能是/bin/sh,因为不一定所有的docker都安装了shell
卸载docker
rpm -e docker-io
卸载Docker后,/var/lib/docker/目录下会保留原Docker的镜像,网络,存储卷等文件. 如果需要全新安装Docker,需要删除/var/lib/docker/目录
rm -fr /var/lib/docker/
卸载镜像
- 删除前需要保证容器是停止的 stop
- 需要注意删除镜像和容器的命令不一样。 docker rmi ID ,其中 容器(rm) 和 镜像(rmi)
顺序需要先删除容器
docker rmi 镜像id
修改已经存在的docker容器的映射端口
- 停止容器
- 停止docker
- 进入 /var/lib/docker/containers/ 容器ID的文件夹
- 修改config.v2.json和hostconfig.json
- 启动docker
- 启动容器
— docker介绍到此为止—
nextcloud
先下载镜像
关闭selinux
yml配置文件
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. 拉取镜像
docker pull collabora/code
2. 启动镜像
容器运行命令
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
##domain处填写nextcloud的域名,小数点前面是两个\
测试是否成功安装命令
https://你的域名地址/loleaflet/dist/admin/admin.html
Nginx配置文件
## 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 服务
systemctl daemon-reload
启动Nginx
onlyoffice
1. 拉取镜像
docker pull onlyoffice/documentserver
2. 前期准备
mkdir -p /cloud/onlyoffice/DocumentServer/logs
mkdir -p /cloud/onlyoffice/DocumentServer/data
mkdir -p /cloud/onlyoffice/DocumentServer/data/certs #复制证书文件到此文件夹,证书改名onlyoffice
3. 启动容器
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配置文件
## office
server {
listen 443 ssl;
server_name 你的域名;
ssl on;
ssl_certificate /cloud/nginx/ssl/onlyoffice.crt;
ssl_certificate_key /cloud/nginx/ssl/onlyoffice.key;
ssl_session_timeout 1d;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ##根据证书来改
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_redirect off;
proxy_pass https://localhost:9443;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
4. 重启docker服务
systemctl daemon-reload
重启Nginx
5. 测试地址
https://服务器地址:9443/
暂时关闭SELinux
参考引用
collabora office
only office
还没有评论,来说两句吧...