就在刚刚,我的内网穿透服务器到期了,由于续费的话太过于昂贵,所以我选择不续费,而我的另外一台服务器也即将于两个月之后到期,于是我就想提前把一些服务搬到本地来,毕竟现在有了一台退役下来的笔记本做了服务器(我安装了Ubuntu),并且内存、硬盘、CPU核数是要比一般的服务器要高的,CPU的性能倒是比不了,但是容量还是可以比一比的。
服务器上使用的是Kodbox,本来想直接迁移到线下,但是转念一想,这个云盘的数据都是存储在COS和又拍云的,最终还是决定在本地重新部署一个云盘,于是选择了Nextcloud。
鉴于宝塔面板使用着越来越不舒服,为了保证服务器的纯净和稳定性,我直接装了一个Docker,现在所有的服务都直接跑在Docker容器里面,方便又省心。
安装Docker
sudo apt update
sudo apt upgrade
sudo apt install docker
当然还建议配置一下docker的镜像,这样拉取的时候更快
sudo vim /etc/docker/daemon.json
按下insert键切换到输入模式,然后开始配置镜像
{
"registry-mirrors":[
"https://xxxx.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
]
}
配置完成后,按下键盘的ESC键,然后输入:wq
保存
让配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker
拉取镜像
这里我选择的是mysql5.7 和最新版的nextcloud,当然也可以按照自己的喜好来,nextcloud支持sqlite,不装数据库也是可以的。
sudo docker pull mysql:5.7
sudo docker pull nextcloud
运行容器
首先运行mysql,配置一下root账户的密码和初始的账号和密码
sudo docker run -d --name mysql \
-v d_mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABASE=nextclud \
-e MYSQL_USER=nextcloud \
-e MYSQL_PASSWORD=password \
-p 3306:3306 \
mysql:5.7
然后运行nextcloud,使用--link关联上面的mysql容器,这样在连接数据库的时候可以在host那里直接填写mysql
,就可以链接到docker容器的mysql数据库
sudo docker run -d --name nextcloud \
-v /home/keze/nextcloud:/var/www/html \
--link mysql \
-p 8081:80 nextcloud
然后访问ip:8081
就可以进行安装了
一些问题
如果没有创建出来默认的数据库和用户,可以自己手动创建一下数据库和用户,用任意的mysql客户端链接,这里我使用的是DataGrip
create database nextcloud; # 创建数据库
create user '用户名'@'%' identified by '密码'; #创建用户
grant all privileges on `nextcloud`.* to 'nextcloud'@'%' identified by '密码'; # 赋予权限