使用Docker部署NextCloud+MySQL构建私有云盘

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

环境

服务器: 阿里云学生机 CoreOSsql

本地: MacBook Pro macOS 10.14.3docker

方法

大致方案就是在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/ 下,即便容器损坏或被删除也不会消失,能够在这里找到。 编写本文时全部命令都是靠回忆写下的,希望没有差错……阿里云

相关文章
相关标签/搜索