查询了很多资料,看过很多的部署方法,终于在跳坑后总结出来一套快速简单有效的部署方法。
一、Docker 配置
1.安装 Docker
首先在 Ubuntu 上安装 Docker
sudo apt updatesudo aptinstall docker.io
接下来启动 Docker 并将其设置为开机自启:
sudo systemctl start dockersudo systemctlenable docker
2.创建 Docker 用户
创建一个名为 docker_user 的用户:
sudo useradd-m-s/bin/bash docker_user
设置该账号的密码:
sudo passwd docker_user
将新建的用户加入到 docker 组中:
sudo usermod-aGdocker docker_user
切换到新建的 docker_user,接下来的操作在该用户下进行:
su - docker_user
二、部署MySQL
安装 MySQL
在 Docker hub中来搜寻 mysql
docker search mysql
将该镜像拉取到本地:(注意:这里有个坑,建议拉取mysql:5,最新的mysql好像密码加密什么问题和nextcloud不兼容)
启动mysql容器
docker run --name nextcloud_db --restart=always -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql:5
进入容器创建nextcloud数据库
docker exec -it CONTAINER ID mysql -uroot -p
输入密码后进去
create database nextcloud charset=utf8;
数据库名称(nextcloud)可以随意设置
exit;
二、部署 NextCloud
安装 NextCloud
在 Docker hub 中来搜寻 NextCloud
docker search nextcloud
将该镜像拉取到本地:
docker pull nextcloud
启动 NextCloud 容器
docker run -d --name nextcloud --restart=always --link nextcloud_db:db_address -p 81:80 -v /root/nextcloud:/data nextcloud
这里一定要注意使用--link把两个容器连接起来
-v指定容器挂载目录(此时注意网盘空间问题,挂载目录尽量大些,否则可能空间不足)
–restart:指定容器停止后的重启策略为退出时总是重启
-p:指定容器的暴露端口
查看当前容器的运行状态:
docker ps-a
记录下屏幕显示的 CONTAINER ID,后面将会使用
设置 NextCloud
在安装好 NextCloud 之后,在当前内网中的浏览器中输入 Ubuntu 主机 IP 来访问。
在网站首页中输入管理员的账号和密码(自定义),在下面数据库配置中选择 mysql,并配置相关的信息,数据库用户(root)数据库密码(上面设置过的)数据库名称选择刚才创建的数据库(nextcloud)localhost(db_address)这里是mysql容器地址。之后点击完成设置。
三、设置外网访问
既然搭建一个私有云盘,因此需要该网盘能够从外网进行访问。
配置 NextCloud
NextCloud 默认设置是不允许从外部 IP 进行访问的。首先得修改该设置。(下面的操作还是 在 docker_user 用户登陆下进行)
进入容器内部:
docker exec -it CONTAINER ID /bin/bash
CONTAINER ID:上文中所记录的
下载 vim 编辑器:
apt-get updateapt-getinstall vim-y
进入到 config 目录下:
cd config
修改 config 文件
vim config.php
将 array 中添加如下内容(0是已有的本机ip,只需要添加1):
array(0=>'10.70.165.115',
1=>'*',),
重新载入配置文件
service apache2 reload
退出容器
exit
NextCloud 设置完成,现在已经支持从局域网其他主机浏览器中输入 ip 来进行访问该网盘啦
按我的一步一步来绝对没问题,如果还是不行,检查下是否关闭防火墙,是否开放端口。
OK👌加油!