怎样用NextCloud管理块存储卷

什么是Nextcloud?

Nextcloud是一个云存储平台,你可以在任意设备上访问该平台、存储和查看你的文件。本文将介绍如何在一台Linode服务器上挂载Block Storage(块存储卷),以满足大容量文件存储的需求。

开始之前的准备工作

1, 为了正常访问Linode主机,你的登录用户需要具有root权限或者sudo权限。

2, 更新你的系统。

安装Docker和Docker Compose

安装Docker

以下步骤参考自Ubuntu官方代码库的Docker社区版安装方式。如果需要安装Docker的其他发行版,请参考其官网的安装页面

卸载系统可能存在的旧版本Docker

sudo apt remove docker docker-engine docker.io

你需要安装必要的软件包,以保证Docker仓库是可用的:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

创建DockerGPG密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

校验GPG密钥指纹:

sudo apt-key fingerprint 0EBFCD88

你应该看到类似的输出

pub   4096R/0EBFCD88 2017-02-22
     Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

创建一个stable版本的Docker仓库(即将该Docker源添加到/etc/apt/source.list中):

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

更新软件库索引并安装Docker社区版

sudo apt update
sudo apt install docker-ce

将仅有的几个Linux用户添加到docker组:

sudo usermod -aG docker exampleuser

重启shell(终端)后生效

运行内置应用“Hello World”,检查是否安装成功

docker run hello-world

安装Docker Compose

下载最新版本的Docker Compose。检查版本页面,将代码中的1.21.2改成最新版本的版本号

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

设置文件权限:

sudo chmod +x /usr/local/bin/docker-compose

挂载块存储卷

创建一个块存储卷,并将其挂载到你的Linode主机上。有关在Linode Manager(一个Linode主机管理系统)上执行此操作的具体步骤,请参考Linode主机之块存储卷挂载

您还可以使用Linode CLI(一个能够实现Linode主机终端交互的GitHub项目)创建新的块卷。下面的命令的意思是创建一个20GB的存储卷,将其标记为nextcloud,并挂载到标记为nextcloud-linode的Linode主机上 。我们可以根据需要调整命令:

linode-cli volume create nextcloud -l nextcloud-linode -s 20

在Block Storage Volume(块存储卷)上创建文件系统,然后根据Linode Manager的指示创建一个挂载点:

检查磁盘的可用空间。请注意:卷会因为文件系统而产生一些额外开销

df -BG
Filesystem 1G-blocks Used Available Use% Mounted on
/dev/root 20G 2G 18G 6% /
devtmpfs 1G 0G 1G 0% /dev
tmpfs 1G 0G 1G 0% /dev/shm
tmpfs 1G 1G 1G 2% /run
tmpfs 1G 0G 1G 0% /run/lock
tmpfs 1G 0G 1G 0% /sys/fs/cgroup
tmpfs 1G 0G 1G 0% /run/user/1000
/dev/sdc 20G 1G 19G 1% /mnt/nextcloud

修改挂载点的所有权:

sudo chown username:username /mnt/nextcloud/

使用Docker Compose配置Nextcloud

Nextcloud提供了一个官方docker-compose.yml文件,它的用处是在运行Nextcloud容器时将数据保存到数据库。你可以编辑此文件的内容,将数据卷绑定到Block Storage Volume的挂载点。

为Nextcloud创建一个目录:

mkdir ~/nextcloud && cd ~/nextcloud

打开文本编辑器,创建docker-compose.yml文件,并添加以下内容。为MariaDB添加适当的密码:

version: '2'

volumes:
 nextcloud:
 db:

services:
 db:
   image: mariadb
   restart: always
   volumes:
     - /mnt/nextcloud/:/var/lib/mysql
   environment:
     - MYSQL_ROOT_PASSWORD=
     - MYSQL_PASSWORD=
     - MYSQL_DATABASE=nextcloud
     - MYSQL_USER=nextcloud

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

启动Docker Compose配置:

docker-compose up -d

你应该把Linode的公共IP地址端口8080开放给Nextcloud

创建管理员帐户时,打开存储和数据库的下拉菜单,填写如下所示的信息,然后输入你在docker-compose.yml文件中填写的MariaDB密码:

警告:Nextcloud提供的设置中不包含任何的SSL证书加密方案,为了保证你的数据和通信安全,所有的Nextcloud服务应在设置反向代理之后启动。使用NGINX反向代理的docker compose配置文件和Let's Encrpyt加密证书都是可用的。

上传数据

创建管理员成功后,浏览器将显示Nextcloud的仪表板。单击左上角的+图标,然后选择上传文件。出于演示目的,我们选择一个Ubuntu.iso大文件用于生成下面的输出)。

成功上传文件后,返回终端并检查可用空间:

df -BG
 
Filesystem 1G-blocks Used Available Use% Mounted on
/dev/root 20G 2G 17G 11% /
devtmpfs 1G 0G 1G 0% /dev
tmpfs 1G 0G 1G 0% /dev/shm
tmpfs 1G 1G 1G 2% /run
tmpfs 1G 0G 1G 0% /run/lock
tmpfs 1G 0G 1G 0% /sys/fs/cgroup
/dev/sdc 20G 2G 17G 11% /mnt/nextcloud
tmpfs 1G 0G 1G 0% /run/user/1000

终端应该显示文件已存储,/mnt/nextcloud是块存储卷的挂载点。

更多信息

有关本文主题的其他相关信息,您可能需要参考以下资源。我们虽然希望提供的资源对你有用,但请注意,我们无法保证外部托管材料的准确性和及时性。

Nextcloud Docker说明文档

本文的版权归 白加黑大人 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程坑太多

『高级篇』docker之DockerSwarm的集群环境搭建(28)

PS:以上就完成高可用的docker swarm的集群环境,其实真心比其他的简单。

1202
来自专栏云计算教程系列

如何在CoreOS集群上使用CloudSlang清理Docker环境

CoreOS是一个Linux发行版,专注于利用Docker容器和服务查询快速启动集群环境。但是,Docker镜像可能占用Docker主机上相当多的磁盘空间。普通...

1140
来自专栏KaliArch

Docke的WEB管理工具

Shipyard也是完全基于Docker API,支持container管理、engine管理(一个engine就是监听tcp端口的docker daemon)...

69013

6 利用Docker .NET应用程序模板制作您的容器应用程序(第2部分)

在最后一篇文章中,我们用各种模板进行了设置。现在我们需要让他们工作起来了。

2288
来自专栏云计算教程系列

如何在CentOS上创建Kubernetes集群

在本教程中,您将使用Ansible和Kubeadm从头开始设置Kubernetes集群,然后给它部署一个容器化的Nginx程序。

5.8K12
来自专栏建站达人秀

如何搭建 Ghost 博客

Ghost是一个轻量级(~7.5MB)的开源博客平台,非常易于使用。Ghost是完全可定制的。互联网上有很多可供Ghost使用的免费或付费的主题。

3923
来自专栏智能合约

Phalcon入门教程之目录结构

1183
来自专栏写写代码吃吃瓜

Ubuntu环境下Tornado环境部署

1757
来自专栏DannyHoo的专栏

Cocoapods安装和使用

删除命令:gem sources --remove https://rubygems.org/

1002
来自专栏程序员的碎碎念

docker搭建静态网站

上面这种方法繁琐且慢,不推荐大家用怎样的方式安装docker。建议使用官网上的安装步骤:https://docs.docker.com/install/linu...

1352

扫码关注云+社区

领取腾讯云代金券