前言

第三次更新:

后来拥有了一个群晖做为个人云盘,效果也不错,后来就没有继续捣鼓了。

群晖docker装ubantu 群晖docker装私人网盘_群晖docker装ubantu

第二次更新:

后来发现nextcloud会有要通过不被信任的域名访问的问题,于是重新修改了一遍。


我要在自己的云服务器(操作系统是centos7.8)上制作自己的私人云盘!

经过考虑之后,使用PHP7.3、MySQL5.5.65、Nginx、Memcached搭建Nextcloud

使用docker不香么?真香!!!!!

安装镜像

私人云盘的数据保存是存储到关系型数据库里面的,将内容保存到里面之后再提供一个可视化的页面来访问。

创建数据库容器

其实使用Docker来快速建立一个数据库是最有效的方式,操作详情则请参考我的同系列另一篇博客,Docker系列之安装数据库。

建立名为keenuser用户,密码为123456,拥有数据库nextcloud的全部权限。

创建Nextcloud容器

拉取镜像

docker pull nextcloud

拉取到的 Nextcloud 镜像的 tag 是 latest,显示以下信息即表示拉取成功。不得不吐槽一句,我明明修改成中科大的源了,可还是下载了好久!

群晖docker装ubantu 群晖docker装私人网盘_docker_02

创建外部挂载目录

递归创建存储目录

mkdir -p /home/keen/docker/nextcloud/data

启动 Nextcloud 容器

docker run -d \
    --restart=always \
    --name nextcloud \
    --link mysql5.7.30:db \
    -p 5213:80 \
    -v /home/keen/docker/nextcloud/data/:/var/www/html/data/ \
    -v /home/keen/docker/nextcloud/config/:/var/www/html/config/ \
    nextcloud
  • docker run :启动一个容器
  • -d:后台运行容器
  • --restart=always:Docker 重启的时候容器也会重启
  • --name nextcloud:命名容器的 name 为 nextcloud,可以替代容器 id 使用
  • --link mysql5.7.30:db:链接数据库容器为服务器的名称记为db
  • -p 5213:80:将容器的 80 端口映射到服务器的 5213 端口
  • -v data: 映射数据文件
  • -v config: 映射配置文件
  • nextcloud:要启动的镜像名称

原本是要映射到80的,但是在我这里已经把端口80占用了啊,于是乎,我就把他对应到了5213(我爱你撒/害羞)。

群晖docker装ubantu 群晖docker装私人网盘_数据库_03

需要注意的是,如果使用的阿里云或腾讯云的服务器,要检查服务器的安全组是否开放了 5213 端口,没有开放的需要开放一下。

如果使用的是本地虚拟机,需要执行以下命令开放 5213端口对外访问,然后更新防火墙规则。

firewall-cmd --zone=public --add-port=5213/tcp --permanent

firewall-cmd --reload

配置容器

直接用域名:端口的方式访问对应的端口号即可。

上面填账号密码,下面选择第二个mysql

  • 数据目录就是/var/www/html/data
  • 对应的就是数据库用户keenuser
  • 对应的密码就是123456
  • 对应的数据库名就是nextcloud
  • 最下面写db

下面的勾无所谓,反正地址被墙了。

群晖docker装ubantu 群晖docker装私人网盘_docker_04

删除容器后的第二次初始化

因为上一次忘记映射配置目录,导致要删除原有容器,映射新容器.在建立管理员账号的时候提示错误。

群晖docker装ubantu 群晖docker装私人网盘_服务器_05

有两个选择,用新的账号去管理这个新的数据库,比如说用root啊

其次是修改原有的账号,创建了管理员账号后再改回来。

之后修改/home/keen/docker/nextcloud/config/config.php文件如下:

群晖docker装ubantu 群晖docker装私人网盘_群晖docker装ubantu_06

于是大家就可以从我的博客后附链接中直接下载了。

感谢

感谢现在的好奇,为了能成为更好的自己。