使用 Docker Compose 快速搭建 nextcloud

in 星海拾贝 with 2 comments

实例:https://pan.onesrc.cn

配置系统环境

安装 Docker

执行下列代码在 Centos 或者其他 RedHat Compatible 的系统中安装 Docker

yum clean all
yum makecache
yum install docker -y

这样 Docker 已经安装完毕,你可以通过

docker -v

检查 docker 是否安装成功

配置 Docker

实测,拉取速度还可以,此步可以跳过

因为Docker 的默认源不在国内,导致拉取镜像时时常会很慢。于是,我们可以添加镜像加速器

编辑并覆盖以下内容到

/etc/docker/daemon.json

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

启动 Docker

执行以下命令启动 Docker

systemctl enable docker
systemctl start docker

安装 Docker Compose

首先我们需要先安装并升级 pip

yum install python-pip -y
pip install --upgrade pip

然后通过 pip 安装 Docker Compose

pip install docker-compose --ignore-installed

通过一下命令可以检查 Docker Compose 是否安装正确

docker-compose -v

安装 NextCloud

为您的域名创建一条 A 记录,并把记录指向:

<您的服务器IP 地址>

域名设置解析后需要过一段时间才会生效,设置完成后,你可以通过 ping 命令查看解析是否生效

ping -c 1 example.com

构建 Docker Compose

执行一下指令初始化 Docker Compose 目录

mkdir -p nextcloud
cd nextcloud

添加并编辑构建文件

docker-compose.yml

输入以下内容

示例代码:/root/nextcloud/docker-compose.yml

:image: nextcloud:12,最新版本为15。13及以后不再支持google drive挂载,如需挂载,请使用12。

version: '3'

services:
  app:
    image: nextcloud:12
    restart: unless-stopped
    volumes:
      - nextcloud:/var/www/html

  web:
    image: abiosoft/caddy
    restart: unless-stopped
    privileged: true
    volumes:
      - ./Caddyfile:/etc/Caddyfile
      - caddy:/root/.caddy
    environment:
      - VIRTUAL_HOST=<您的服务器IP 地址>
    links:
      - app
    ports:
      - 80:80
      - 443:443
    networks:
      - default

volumes:
  nextcloud:
  caddy:

networks:
  default:

构建上游服务器 Caddy

在本次教程中,我们采用 Docker + Caddy + PHP + SQLite 的构架。

Caddy 是一个非常优秀的上游服务器(功能类似于 Nginx),但是它自带免费申请 SSL证书 的功能,它的配置方法如下:

添加并编辑构建文件

Caddyfile

示例代码:/root/nextcloud/Caddyfile

example.com

errors error.log {
    404 https://example.com/404.html
}

proxy / app:80 {
    transparent
    header_downstream Content-Security-Policy none
}

请将 域名 改成你自己的域名。

这里需要强调的是,如果没有自己的域名,将不能启用 SSL,因为 let's encrypt 只支持域名证书,如果无绑定域名,会被直接拒绝。因此,这里强烈建议使用自己的域名!

启动服务

最后我们只需要让 Docker Compose 自动构建并维护这几个 Docker 即可

此处可能要等待几分钟,具体时间是网络情况而定。(如果过于缓慢,请检查是否参考第一步中配置了国内镜像)

docker-compose up -d

你可以通过如下命令检查 Docker 状态

docker-compose ps

注: Caddy 在第一次获取 SSL 是会自动重启两次,较慢为正常现象。如果看到两个容器都为 Up 状态。即可进入下一步

至此,NextCloud 已经配置完毕

请访问 https://example.com 查看安装界面

WX20180801-115839@2x.png

注:挂在外部存储需要在应用市场中找到 External storage support 并启用它,然后在设置->外部存储中添加配置。

常用命令:

docker 文件地址:

var/lib/docker

docker命令输入:

docker exec
docker exec --user www-data -it nextcloud_app_1   ./occ upgrade #更新
docker exec --user www-data -it nextcloud_app_1   occ user:resetpassword 用户名 #忘记密码

存档链接:

https://cloud.tencent.com/developer/labs/lab/10414

Responses
  1. Cchahu

    cool.但是你讲哩啥?俺听不懂

    Reply
  2. study 一起学习 go

    Reply