两年前在我阿里云服务器上手动搭建过nextcloud 18.*版本的相关依赖环境。当时废了不少精力,服务器带宽5M,下载不限速用起来爽的一匹。后来redis惨遭挖矿病毒入侵,清理病毒的时候把服务器被搞得乱七八糟。最近打算试试最新版的nextcloud于是使用docker安装方式,并记录一下。

1 安装docker与数据库(MySQL或其他)

自行搜索…

我这里用的是MySQL。数据库部署好后设置用户名密码,创建一个名为“nextcloud”的数据库。等待nextcloud部署的最后一步(即第5步),配置这个数据库连接信息以及指定这个nextcloud数据库进行初始化。

2 安装nextcloud

从docker镜像仓库中拉取或者更新nextcloud镜像

docker pull nextcloud

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Using default tag: latest
Trying to pull repository docker.io/library/nextcloud ...
latest: Pulling from docker.io/library/nextcloud
6ec7b7d162b2: Pull complete
db606474d60c: Pull complete
afb30f0cd8e0: Pull complete
3bb2e8051594: Pull complete
4c761b44e2cc: Pull complete
c2199db96575: Pull complete
1b9a9381eea8: Pull complete
50450ffc67ee: Pull complete
4d1e5a768e83: Pull complete
5e8be0d1df16: Pull complete
7a6395859d40: Pull complete
7306499d3dce: Pull complete
fa6f0ba15ac6: Pull complete
0d944dae1b06: Pull complete
aab877fa23a7: Pull complete
045fd88fbde3: Pull complete
e4839d052e78: Pull complete
929a7a0f4a1d: Pull complete
d3d2cd8d0367: Pull complete
eff6b1bf6724: Pull complete
Digest: sha256:c3293496f203a92cddcfcb204d9060066b591058669d7ba12a1c655302417367
Status: Downloaded newer image for docker.io/nextcloud:latest
3 开放8000端口

这里我服务器80端口被nginx占用,所以用8000端口映射docker的80端口

开放8000端口号 , 注意:我使用的是centos7.3的版本,防火墙是firewall

1
firewall-cmd --zone=public --add-port=8000/tcp --permanent

重启防火墙,运行命令:

1
firewall-cmd --reload

查看端口号是否开启,运行命令:

1
firewall-cmd --query-port=8000/tcp

如果是阿里云的服务器 , 还需进入服务器管理控制台,给防火墙8000端口号添加规则

下面效果图是之前邮件端口截的,将就看。。。

4 运行nextcloud容器

docker run -d --restart=always --name nextcloud -p 8000:80 nextcloud
参数:

  • docker run :启动容器
  • -d:后台运行
  • –restart=always:Docker 重启的时候重启容器
  • –name nextcloud:容器命名
  • -p 8000:80:将服务器的 8000 端口映射到容器的 80 端口
  • nextcloud:要启动的镜像名称

这里我服务器80端口被nginx占用,所以用8000端口映射docker的80端口,运行命令出现一串字符串则成功。
记得服务器防火墙以及阿里云等服务商的安全组必须设置开放8000端口

1
9b272c1885777c370a14a5e0cb78d3632bc7f8f8c66a7c97b2771dd75ab870cf

docker ps查看运行的容器

1
2
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                                                         NAMES
9b272c188577 nextcloud "/entrypoint.sh ap..." 9 seconds ago Up 8 seconds 0.0.0.0:8000->80/tcp nextcloud
5 访问nextcloud页面,配置账号/数据库信息,自动初始化

访问路径:http://服务器IP:8000

  • 设置管理员用户名与密码。
  • 点击存储与数据库,选择切换为MySQL的配置项,并设置之前的数据库信息。
  • 点击 安装完成 后自动进行初始化安装,如果是之前安装过nextcloud则会自动更新版本与相应组件。

在这里插入图片描述


6 安装完成效果:

在这里插入图片描述
在这里插入图片描述