前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 搭建「个人网盘」,放弃 Pandownload!

Docker 搭建「个人网盘」,放弃 Pandownload!

作者头像
搜云库技术团队
发布2020-04-21 15:29:38
4K0
发布2020-04-21 15:29:38
举报

快速搭建个人云并配置多存储介质

配置系统环境

任务时间:10min ~ 20min

本章节着重介绍 Docker / Docker Compose 的安装和使用。

安装 Docker

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

代码语言:javascript
复制
yum clean all
 
yum makecache
 
yum install docker -y
 

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

代码语言:javascript
复制
docker -v

检查 docker 是否安装成功

配置 Docker

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

编辑并覆盖以下内容到

/etc/docker/daemon.json

代码语言:javascript
复制
{
 
 "registry-mirrors": ["https://registry.docker-cn.com"]
 
}
 

启动 Docker

执行以下命令启动 Docker

代码语言:javascript
复制
systemctl enable docker
 
systemctl start docker

安装 Docker Compose

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

代码语言:javascript
复制
yum install python-pip -y
 
pip install --upgrade pip

然后通过 pip 安装 DockerCompose

代码语言:javascript
复制
pip install docker-compose --ignore-installed

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

代码语言:javascript
复制
docker-compose -v

安装 NextCloud

任务时间:10min ~ 20min

申请域名

因为你的私有云需要一个独立的域名来做 HTTPS 加密访问,所以这里推荐大家注册一个域名。

申请解析

可以点击这里前往域名控制台。

然后,创建一条 A 记录,并把记录指向:

<您的 CVM IP 地址>

这个你此刻正在使用的机器的 IP地址,具体过程你可以参考以下视频。

腾讯官方视频 - 解析域名

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

代码语言:javascript
复制
ping -c 1 example.com

如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。

请将下面 example.com 换成你自己的域名

构建 Docker Compose

执行一下指令初始化 DockerCompose 目录

代码语言:javascript
复制
mkdir -p nextcloud
 
cd nextcloud

添加并编辑构建文件

docker-compose.yml

输入以下内容

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

代码语言:javascript
复制
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=<您的 CVM 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

代码语言:javascript
复制
域名
 
errors error.log {
 
 404 https://error.yuuno.cc
 
}
 
proxy / app:80 {
 
    transparent
 
    header_downstream Content-Security-Policy none
 
}
 

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

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

启动服务

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

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

代码语言:javascript
复制
docker-compose up -d
 

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

代码语言:javascript
复制
docker-compose ps
 

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

至此,NextCloud 已经配置完毕

请访问

https://你的域名/

查看安装界面

或者,你也可以访问不加密的页面

http://你的域名/

自配域名的同理

配置 NextCloud

任务时间:15min ~ 30min

初始化

接下来就是简单的配置部分

此处输入你的管理员用户名和密码,就完成了,是不是很简单!

这就是你的文件目录啦

开启多媒介存储

点击 应用 这里需要等待一些时间,因为 NextCloud 会更新应用市场

找到 Externalstorage support 并启用它

进入 Admin

这是你就能看到在左侧已经出现了 外部存储

拓展存储

这里只以 Amazon S3 作为案例。其他的配置都类似,根据提示来即可

如图所示,示例添加的是 Amazon S3 亚太区的一个 bucket。bucket 名字为 yu

链接成功后,左侧会出现一个绿点,这时候回到主页,就能看到 S3 已经被当做一个 『网盘』 一样挂载了进来。

本教程就到此结束啦。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置系统环境
    • 安装 Docker
      • 配置 Docker
        • 启动 Docker
          • 安装 Docker Compose
          • 安装 NextCloud
            • 申请域名
              • 申请解析
                • 构建 Docker Compose
                  • 构建上游服务器 Caddy
                    • 启动服务
                    • 配置 NextCloud
                      • 初始化
                        • 开启多媒介存储
                          • 拓展存储
                          相关产品与服务
                          容器镜像服务
                          容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档