docker安装Nextcloud私有云盘

1 nextcoud简介

官方网站:https://nextcloud.com/
github地址:https://github.com/nextcloud
Nextcloud,所有数据的安全之家!根据您的需要,从任何设备访问和共享您的文件,日历,联系人,邮件等。

Nextcloud是灵活的开源文件同步和共享解决方案。Nextcloud包括在Linux上运行的Nextcloud服务器,用于Microsoft Windows,macOS和Linux的客户端应用程序,以及用于Android和Apple iOS操作系统的移动客户端。

nextcloud功能:

  • 访问您的数据您可以将文件,联系人,日历等存储在您选择的服务器上。
  • 同步您的数据您可以在设备之间保持文件,联系人,日历和更多内容的同步。
  • 通过让其他人访问您希望他们查看或与之协作的内容来共享您的数据。
  • 可扩展的数十个应用程序 …如日历,联系人,邮件以及您可以在我们的App Store中发现的所有应用程序
  • 安全性与我们的加密机制,HackerOne赏金计划和双因素身份验证。

获取Nextcloud:

2 docker方式安装

2.1 安装说明

github示例:https://github.com/nextcloud/docker
官方dockerhub镜像:https://hub.docker.com/_/nextcloud

镜像版本选择

此镜像旨在用于微服务环境。您可以选择以下2种版本的镜像。

  • 第一个选择是apache版本,包含完整的Nextcloud安装,包括apache Web服务器。它的设计易于使用,可以让您快速运行。这也是latest未进一步指定的标记和版本标记的默认值。
  • 第二个选择是fpm容器。它基于php-fpm镜像,并运行一个fastCGI-Process,为您的Nextcloud页面提供服务。要使用此镜像,必须将其与可以将http请求代理到容器的FastCGI端口的任何Web服务器结合使用。

使用外部数据库

默认情况下,此容器使用SQLite进行数据存储,但Nextcloud设置向导(首次运行时出现)允许连接到现有的MySQL / MariaDB或PostgreSQL数据库。您也可以链接数据库容器,例如–link my-mysql:mysql,然后mysql在安装时用作数据库主机。更多信息在docker-compose部分。

持久化数据

Nextcloud安装以及数据库之外的所有数据(文件上载等)都存储在未命名的docker卷中/var/www/html。docker守护程序将该数据存储在docker目录中/var/lib/docker/volumes/…。这意味着即使容器崩溃,停止或删除,您的数据也会被保存。

2.2 安装docker

本文基于centos7以docker方式安装nextcloud。

首先安装docker

#安装依赖包:
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

#配置阿里云yum源:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装docker-ce:
yum install –y docker-ce
systemctl start docker && systemctl enable docker

安装docker-compose

yum install -y epel-release docker-compose

2.3 安装apache版本

此版本将使用apache镜像并添加mariaDB容器。卷设置为保持数据持久性。此设置不提供ssl加密,旨在在代理后面运行。

这里使用docker-compose运行镜像,获得全功能和功能设置的最简单方法是使用docker-compose文件。

创建docker-compose.yml配置文件:

注意设置变量MYSQL_ROOT_PASSWORD和MYSQL_PASSWORD。

[root@willcentos ~]# vim docker-compose.yml 
version: '2'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=nextcloud
      - MYSQL_PASSWORD=nextcloud
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    restart: always

运行容器

docker-compose up -d

查看容器运行状态
运行了2个容器,nextcloud容器和mariadb数据库容器。

# docker ps -a
221f3d81ffb8        nextcloud                    "/entrypoint.sh apac…"   6 days ago          Up 6 days           0.0.0.0:8080->80/tcp             apache_app_1
26dc87c71450        mariadb                      "docker-entrypoint.s…"   6 days ago          Up 6 days           3306/tcp                         apache_db_1

查看拉取的容器镜像

# docker images
REPOSITORY                                                                          TAG                 IMAGE ID            CREATED             SIZE
nextcloud                                                                           fpm                 ad7ea019f99b        2 weeks ago         587MB
nextcloud                                                                           latest              ace08abb9937        2 weeks ago         598MB
mariadb                                                                             latest              e93652b8b80d        2 weeks ago         368MB

访问nextcloud ui

现在您可以从主机系统访问位于http://47.105.182.223:8080/的 Nextcloud 。

用户数据存储目录:
容器内部目录被挂载到主机目录下

#docker卷路径,包含数据库和nextcloud.
# ll /var/lib/docker/volumes/
drwxr-xr-x 3 root root  4096 Mar 24 09:36 nextcloud_db
drwxr-xr-x 3 root root  4096 Mar 24 09:36 nextcloud_nextcloud

#实际的用户数据路径
# ll /var/lib/docker/volumes/nextcloud_nextcloud/_data/data/admin/files
drwxr-xr-x 2 33 tape    4096 Mar 24 10:32 Documents
-rw-r--r-- 1 33 tape 6628477 Mar 24 10:32 Nextcloud Manual.pdf
-rw-r--r-- 1 33 tape  462413 Mar 24 10:32 Nextcloud.mp4
-rw-r--r-- 1 33 tape   37042 Mar 24 10:32 Nextcloud.png
drwxr-xr-x 2 33 tape    4096 Mar 24 10:32 Photos

常用命令

#启动和停止容器
docker stop <容器名称>
docker start <容器名称>
docker restart <容器名称>

#删除容器,删除前必须停止容器
docker rm <容器名称> 

#进入容器
docker exec -it <容器名称> sh 

#查看容器镜像
docker images
#删除容器镜像
docker rmi <镜像名称>

2.4 安装FPM版本

要使用fpm镜像,您需要一个额外的Web服务器,它可以将http-request代理到容器的fpm-port。对于fpm连接,此容器公开端口9000.在大多数情况下,您可能希望使用另一个容器或主机作为代理。如果您使用主机,则可以直接在端口9000上寻址您的Nextcloud容器。如果您使用其他容器,请确保将它们添加到同一个docker网络(通过docker run --network …或docker-compose文件)。在这两种情况下,您都不希望将fpm端口映射到主机。

创建docker-compose.yml文件

vim docker-compose.yml

version: '2'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=nextcloud
      - MYSQL_PASSWORD=nextcloud
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud:fpm
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    restart: always

  web:
    image: nginx
    ports:
      - 8080:80
    links:
      - app
    volumes:
      - /nextcloud/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    volumes_from:
      - app
    restart: always

确保在你运行安装程序前设置变量MYSQL_ROOT_PASSWORD和MYSQL_PASSWORD。

另外修改yaml文件中的nginx.conf路径,这里改为/nextcloud/nginx/nginx.conf,

然后创建nginx.conf存放目录

mkdir -p /nextcloud/nginx && cd /nextcloud/nginx
#从github复制一份nginx.conf配置到该目录下:
curl -O  https://raw.githubusercontent.com/nextcloud/docker/master/.examples/docker-compose/with-nginx-proxy-self-signed-ssl/mariadb/fpm/web/nginx.conf

运行容器

docker-compose up -d

访问nextcloud ui
输入管理员用户密码,配置数据库使用MariaDB

登录成功,可以开始使用了

2.5 安装客户端

下载windows客户端:

可以使用nextcloud客户端将windows本地文件自动同步到nextcloud

https://nextcloud.com/install/#install-clients

安装linux客户端:

可以使用nextcloud客户端将linux本地文件同步到nextcloud

yum install -y epel-release

yum install -y nextcloud-client

linux备份命令:

nextcloudcmd -u admin -p 123456 /root/test/ http://114.116.64.152:8080

nextcloudcmd /home/ http://114.116.64.152:8080 -u admin -p 123456

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值