就在刚刚,我的内网穿透服务器到期了,由于续费的话太过于昂贵,所以我选择不续费,而我的另外一台服务器也即将于两个月之后到期,于是我就想提前把一些服务搬到本地来,毕竟现在有了一台退役下来的笔记本做了服务器(我安装了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 '密码'; # 赋予权限
如果觉得我的文章对你有用,请随意赞赏