Docker 搭建 nextcloud 网盘

搭建个人网盘

终于想起来要搭建一个个人网盘,于是学习了一下使用 docker 搭建了一个个人网盘,记录一下搭建的过程
使用 mysql 作为数据库

拉取镜像

1
2
docker pull mysql
docker pull nextcloud

运行镜像

创建并运行 mysql 容器

1
docker run -d -p 3306:3306 --name nextcloud_db -e MYSQL_ROOT_PASSWORD=371215 mysql

进入 nextcloud_db 容器,创建一个数据库

1
docker exec -it nextcloud_db /bin/bash
1
2
3
mysql -u root -p

create database nextcloud;

创建并运行 nextcloud 容器

1
2
3
4
5
6
docker run -d -p 10101:80 --name nextcloud \
-v /home/nextcloud:/var/www/html \
-v /home/nextcloud/apps:/var/www/html/custom_apps \
-v /home/nextcloud/config:/var/www/html/config \
-v /home/nextcloud/data:/var/www/html/data \
nextcloud
  • -v 参数表示将镜像中的目录映射到某一个本地目录下

网上很多教程都说要用 --link 参数,但我看了 docker 的文档,上面建议不要使用 --link 这个参数
不建议使用这个参数,可能会被移除
https://docs.docker.com/network/links/

所以我没有使用这个参数,后面也不用必须连接某个容器,可以直接使用网络连接数据库

设置网盘

打开浏览器,输入网盘的 IP 地址和端口,设置参数
数据库的地址填ip:port

设置好后等就可以了

内网穿透

frp 服务端设置 frps.ini

1
2
3
[common]
bind_port = 7000
vhost_http_port = 10086

启动frps

1
nohup ./frps -c frps.ini > /dev/null 2>&1 &

frp 客户端设置 frpc.ini

1
2
3
4
[web]
type = http
local_port = 10101
custom_domains = X.X.X.X

启动frpc

1
nohup ./frpc -c frpc.ini > /dev/null 2>&1 &

打开浏览器,输入 服务器 IP:10086,会碰到无法访问的问题,这是因为这个 IP 地址不受到信任

进入 nextcloud 容器

1
docker exec -it nextcloud /bin/bash

安装 vim 并修改 /var/www/html/nextcloud/config/config.php 文件

1
2
3
apt-get update
apt-get install vim
vim /var/www/html/config/config.php

找到 trusted_domains 这一项,在后面的 array 的括号里添加一项服务器的 IP 地址

1
2
3
4
5
'trusted_domains' => 
array (
0 => '192.168.0.105:10101',
1 => 'X.X.X.X'
),

保存并退出,浏览器刷新一下就可以了


总算是把网盘给搭建好了,后面可以再做一个加速的操作,这样我就有一个自己的不限速的网盘了
以后可以买几块大的硬盘放家里,存些我自己的数据,随时拿随时取咯 (ᕑᗢᓫ∗)˒