Ubuntu 搭建基于 Docker 的私人网盘
Ubuntu 搭建基于 Docker 的私人网盘
本教程是基于在本地运行 Ubuntu 系统的主机上进行搭建,并利用 ngrok 实现内网穿透。搭建 NextCloud 需要用到 mysql 数据库,因此需要提前进行安装。
- Ubuntu系统版本:18.04(最低版本要求16.04)
- mysql版本:5.7
一、Docker 配置
安装 Docker
首先在 Ubuntu 上安装 Docker
sudo apt update
sudo apt install docker.io
接下来启动 Docker 并将其设置为开机自启:
sudo systemctl start docker
sudo systemctl enable docker
创建 Docker 用户
创建一个名为 docker_user 的用户:
sudo useradd -m -s /bin/bash docker_user
设置该账号的密码:
sudo passwd docker_user
将新建的用户加入到 docker 组中:
sudo usermod -aG docker docker_user
切换到新建的 docker_user,接下来的操作在该用户下进行:
su - docker_user
二、部署 NextCloud
安装 NextCloud
在 Docker hub 中来搜寻 NextCloud
docker search nextcloud
将该镜像拉取到本地:
docker pull nextcloud
启动 NextCloud 容器
docker run -d --restart=always --name nextcloud -p 80:80 -v/root/nextcloud:/data docker.io/nextcloud
- -d:在后台运行
- –restart:指定容器停止后的重启策略为退出时总是重启
- -p:指定容器的暴露端口
- -v:指定容器挂载目录(此时注意网盘空间问题,挂载目录尽量大些,否则可能空间不足)
查看当前容器的运行状态:
docker ps -a
记录下屏幕显示的 CONTAINER ID,后面将会使用
创建 NextCloud 存储数据库
登陆到 mysql 数据库当中:
sudo mysql -uroot -p
创建一个名为 nextcloud 的数据库(该名称可以自定义)
create database nextcloud charset=utf8;
查看下数据库是否创建成功:
show databases;
创建成功后退出mysql:
exit
设置 NextCloud
在安装好 NextCloud 之后,在当前内网中的浏览器中输入 Ubuntu 主机 IP 来访问。
在网站首页中输入管理员的账号和密码,在下面数据库配置中选择 mysql,并配置相关的信息,数据库名称选择刚才创建的数据库。之后点击完成设置。
三、设置外网访问
既然搭建一个私有云盘,因此需要该网盘能够从外网进行访问。
配置 NextCloud
NextCloud 默认设置是不允许从外部 IP 进行访问的。首先得修改该设置。(下面的操作还是在 docker_user 用户登陆下进行)
进入容器内部:
docker exec -it CONTAINER ID /bin/bash
- CONTAINER ID:上文中所记录的
下载 vim 编辑器:
apt-get update
apt-get install vim -y
进入到 config 目录下:
cd config
修改 config 文件
vim config.php
将 array 中添加如下内容(0是已有的本机ip,只需要添加1):
array (
0 => '10.70.165.115',
1 => '*',
),
重新载入配置文件
service apache2 reload
退出容器
exit
NextCloud 设置完成,现在已经支持从局域网其他主机浏览器中输入 ip 来进行访问该网盘。
设置内网穿透
内外穿透使用的是 https://ngrok.com/。访问不了可以看这里:http://ngrok.ciqiuwl.cn/
ngrok 需要创建账号,这里使用的是免费的版本。
下载对应的安装程序到本地,解压之后按照网站的提示进行操作即可。
现在便可以随时随地去访问自己的私人云服务了。