入门小白,使用ubuntu,使用docker或者docker-compose搭建家庭个人网盘nextcloud,外网通过IPV6域名访问。第一篇

本文的需求背景

  1. 如果你有多余的机械硬盘,想要备份 照片
  2. 如果你有多余的老旧笔记本 当服务器,或者其他机器也可以
  3. 如果你还想 外网能够访问 家庭网络
  4. 你不考虑NAS的情况下
  5. 既不想买 腾讯或者阿里云服务器,又不想买域名的

而且我的意图是,我的硬盘里有资料了,只是想把硬盘作为挂载的工具放到nextcloud

如果不想折腾的,嗯,到了这一步,你和我说你不想折腾
请添加图片描述

如果不想麻烦的,嗯,还是上NAS。 虽然我没用过

技能要求或者工具

  1. 需要对linux 有一定的操作水平,文章中使用 ubuntu桌面版。就是有图形界面的哈
  2. 能够基础使用docker,docker-compose
  3. 能够关闭ipv6防火墙功能的 路由器

使用到的软件

  1. 个人网盘: nextcloud
  2. 容器: docker
  3. 免费域名解析: ddns-go
  4. 动态dns: dynv6 ,官网: https://dynv6.com

由于 这几款软件都是 开源软件,所以并不需要收费哈

第一步,docker

针对自己的操作系统,安装 docker ,以及 docker-compose
这一步 可以百度解决

第二步,安装nextcloud

docker 方式

参考文档: https://www.cnblogs.com/xwgli/p/16512462.html
内容分为几步:

  1. 安装redis,用于缓存 (参考上面文档的安装命令)

  2. 安装mysql,用于存储数据(参考上面文档的安装命令)
    下面的mysql配置项,填入的是安装mysql时的内容

    照片参考的别人的哈
    对不住,照片用的其他兄弟的哈

  3. 安装nextcloud

docker run -d -p 8080:80 \
--restart=always \
-v /home/nextcloud/html:/var/www/html \
--link nextcloud-mysql:mysql \
--link nextcloud-redis:redis \
--name nextcloud nextcloud:latest

解释下命令:
-d 后台启动
-p 端口映射,将docker 80端口映射到 宿主机的9090端口
-v 将docker /var/www/html 目录映射到 宿主机的 /home/nextcloud/html

因为nextcloud再docker 是安装到 /var/www/html 目录下的,那么你以后往网盘上传东西的时候,数据也都在这个目录下。
所以得把这个 目录映射出来,否则,你重新创建container后,数据是没了的

–link 链接 MySQL 和 Redis 到 nextcloud 容器,使用别名访问

注意: nextcoud配置文件 可以暂时先不修改

此方法适用于docker启动, 比较方便快捷

docker compose方式

为啥要使用docker compose方式呢,因为配置文件的方式,比较好记,也比较好修改。
基于前面的参考文档,redis 和mysql 不变,当然 你也可以换个方式安装。
我是为了 学习下 docker compose 并且要用于工作的

找个目录, 创建 docker-compose.yml 配置文件

services:
  app:
    image: nextcloud #使用的镜像名
    restart: always
    ports:
      - 9090:80	#端口
    networks:
      - nextcloud_netbridge	#使用的网络方式
    external_links:		# 关联的外部容器应用。这里就是前面创建好的 mysql 和 redis
      - nextcloud-mysql:mysql
      - nextcloud-redis:redis
    volumes:			# 映射主机的路径到 docker容器内
      - /home/xxxxx/nextcloud/html:/var/www/html
      - /mnt/testmount:/mnt/testmount2
    environment:
      - MYSQL_ROOT_PASSWORD=xxx
      - MYSQL_DATABASE=nextcloud
    privileged: true	# 给nextcloud root权限
    #devices:
    #  - "/dev/sdb1:/dev/xvda:rwm"

# 网络方式
networks:		
  nextcloud_netbridge:
    driver: bridge

配置完成后,执行

docker-compose up -d

如果后续这个配置文件不改动,那么不要使用 up -d 启动
尽量使用下面的命令

docker-compose restart

注意
如果配置文件改动,则需要使用 up -d 启动,会重新创建container,你容器里修改的内容将会丢失
采用 restart 方式,则只是重启 容器里的服务

启动nextcloud

ip地址查看,找到你的wifi网卡或者有线网卡

ip addr
或者
ifconfig

接着浏览器输入: 你的ip地址:8080

这样, 搭建nextcloud 就完成了