赞
踩
官方网站:https://nextcloud.com/
github地址:https://github.com/nextcloud
Nextcloud,所有数据的安全之家!根据您的需要,从任何设备访问和共享您的文件,日历,联系人,邮件等。
Nextcloud是灵活的开源文件同步和共享解决方案。Nextcloud包括在Linux上运行的Nextcloud服务器,用于Microsoft Windows,macOS和Linux的客户端应用程序,以及用于Android和Apple iOS操作系统的移动客户端。
nextcloud功能:
获取Nextcloud:
github示例:https://github.com/nextcloud/docker
官方dockerhub镜像:https://hub.docker.com/_/nextcloud
镜像版本选择
此镜像旨在用于微服务环境。您可以选择以下2种版本的镜像。
使用外部数据库
默认情况下,此容器使用SQLite进行数据存储,但Nextcloud设置向导(首次运行时出现)允许连接到现有的MySQL / MariaDB或PostgreSQL数据库。您也可以链接数据库容器,例如–link my-mysql:mysql,然后mysql在安装时用作数据库主机。更多信息在docker-compose部分。
持久化数据
Nextcloud安装以及数据库之外的所有数据(文件上载等)都存储在未命名的docker卷中/var/www/html。docker守护程序将该数据存储在docker目录中/var/lib/docker/volumes/…。这意味着即使容器崩溃,停止或删除,您的数据也会被保存。
本文基于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
此版本将使用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 <镜像名称>
要使用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
登录成功,可以开始使用了
下载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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。