服务器闲着也是闲着,利用一下带宽和内存,跑一些自托管项目还是不错的。个人网盘就是一个很常见的项目。虽然OneDrive家庭版已经很香,但是它的ios端居然全局魔法也不好用,实在是无法理解。最后选择nextcloud搭建个人网盘,而没有选择oneindex在服务器挂在OneDrive,希望可以兼顾手机端。

参考:

  1. centos7安装Docker详细步骤(无坑版教程)
  2. 使用docker安装部署NextCloud私人网盘
  3. Docker方式部署Nextcloud

第一步,安装docker

# 1
yum install -y yum-utils device-mapper-persistent-data lvm2

# 2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r

# 3
yum -y install docker-ce-18.06.3.ce

# 4
systemctl start docker
systemctl enable docker
  1. 安装需要的软件包,yum-util提供yum-config-manager功能,另两个是devicemapper驱动依赖。
  2. 设置yum源。
  3. 下载安装docker
  4. 启动docker并且设置为开机自启。

第二步,运行MySQL容器

docker run --name mysql-nextcloud -e MYSQL_ROOT_PASSWORD=自己设 -e MYSQL_DATABASE=自己设 -e MYSQL_USER=自己设 -e MYSQL_PASSWORD=自己设 -p 3306:3306 -d mysql:5.7

  参数:

  • name:容器名称mysql-nextcloud
  • MYSQL_ROOT_PASSWORD:数据库root账户密码
  • MYSQL_DATABASE:数据库名称
  • MYSQL_USER:普通账户名
  • MYSQL_PASSWORD:普通账户密码
  • 端口映射:主机3306和容器3306
  • 镜像:mysql选择5.7版本。

第三步,创建一个网络,将MySQL加入其中

docker network create nextcloud-network
docker network connect nextcloud-network mysql-nextcloud
  • 创建了一个名为nextcloud-network的网络。
  • 将容器mysql-nextcloud加入其中

第四步,运行nextcloud容器,加入刚刚的网络

docker run -d --name nextcloud --network nextcloud-network -p 8080:80 nextcloud
  1. 运行一个nextcloud容器,参数中设置加入网络。这里我的主机80端口已经被博客网站服务占用,所以主机使用8080端口。
  2. 设置防火墙策略,开放这nextcloud使用的端口。

第五步,进入web管理界面,进行配置

  1. 进入http://你的服务器IP:8080。端口是你上一步设定的。
  2. 进行初始化。
  3. 管理员账户:创建一个管理员账户,填写用户名和密码。
  4. 数据存储:默认情况下,数据目录应该已经设置好了,通常不需要更改。
  5. 数据库配置:

    1. 选择MySQL作为数据库。
    2. 数据库用户名:之前设置的MYSQL_USER
    3. 数据库密码:之前设置的MYSQL_PASSWORD
    4. 数据库名称:之前设置的MYSQL_DATABASE
    5. 数据库主机:这里应该填写MySQL容器的名称加上 Docker网络名,如mysql-nextcloud:3306

一些经验

  docker容器启动时候报错,容器依旧会启动,需要停止然后删除该容器,解决报错,然后重新启动。

docker stop mysql-nextcloud
docker rm mysql-nextcloud