zoukankan      html  css  js  c++  java
  • 使用Docker部署NextCloud+MySQL构建私有云盘

    本文记录了我在CoreOS服务器上利用Docker部署NextCloud+MySQL实现私有云盘的过程。

    环境

    服务器:
    阿里云学生机
    CoreOS

    本地:
    MacBook Pro
    macOS 10.14.3

    方法

    大体方案就是在Docker中分别建立两个容器,一个是MySQL,一个是NextCloud,将MySQL link到NextCloud上作为数据库来使用。

    创建MySQL容器

    docker run --name=nextcloud_db -e MYSQL_ROOT_PASSWORD=passwd -d mysql:5
    

    这里使用mysql:5而非mysql:latest是因为,最新版本的MySQL好像更改了默认的加密方法,和NextCloud配合使用会产生一些错误。
    我索性就采用了低版本的MySQL(参考了一些修改加密方法的博客但是没有效果啊 TAT)。
    其中passwd部分请替换为你想使用的密码。

    docker exec -it nextcloud_db mysql -u root -p
    passwd: ....
    mysql> CREATE DATABASE nextcloud;
    mysql> exit;
    

    这里是进入MySQL并创建一个新的数据库,命名为nextcloud(当然你可以改为自己喜欢的名字)。

    创建NextCloud容器

    docker run --name=nextcloud --link nextcloud_db:db -p 1080:80 -d nextcloud
    

    使用这一行命令创建一个NextCloud容器并且将另一个容器“链接”过来作为数据库使用,在这个容器内部其地址被映射为db(可以修改为你喜欢的名字)。
    这里我使用的就是NextCloud在Docker Hub上的官方镜像。
    并且我将NextCloud内部的80端口映射到了外部的1080端口上,所以在浏览器中访问http://your_server_ip:1080就可以看到NextCloud界面了。
    之后就参照提示在浏览器中完成设置即可。
    在这里,我让NextCloud以root账户访问MySQL数据库(当然并不推荐这么做,但是我懒得创建一个新的MySQL账户了),密码就是passwd,数据库名就是nextcloud,数据库地址就是db。

    后记

    使用MySQL是因为NextCloud推荐这么做(尤其是在使用客户端及多用户功能时),我没有学习过数据库的知识,不知道为何默认的SQLite不被推荐使用。
    NextCloud的所有文件会储存在 /var/lib/docker/volumes/nextcloud/ 下,即使容器损坏或被删除也不会消失,可以在这里找到。
    编写本文时所有命令都是靠回忆写下的,但愿没有差错……

  • 相关阅读:
    GDI绘制时钟效果,与系统时间保持同步,基于Winform
    Asp.Net Core API网关Ocelot
    Docker打包 Asp.Net Core应用,在CentOS上运行
    【C#】数据库脚本生成工具(二)
    【C#附源码】数据库文档生成工具支持(Excel+Htm)
    微信小程序初使心得【微信小程序快速入门】
    论:开发者信仰之“天下IT是一家“(Java .NET篇)
    线程池,千万注意,原来很多人都在错用
    .NET跨平台之运行与Linux上的Jexus服务器
    StackExchange.Redis 之 SortedSet 类型示例
  • 原文地址:https://www.cnblogs.com/you-siki/p/Docker-NextCloud-MySQL.html
Copyright © 2011-2022 走看看