天天向上 - NAS三部曲3:NextCloud
Contents
OMV上部署Docker,然后再是Docker上玩转NextCloud。为毛不单独部署NextCloud?因为OMV的GUI好用呀,哦,忘记说我的Linux就是个菜了。
Docker
容器的作用主要就是微服务,快速开发,快速部署,而不需要管理硬件底层的内容。容器比VMWare这些虚拟化产品更轻量化。
常用容器命令
- docker ps
注: 检查运行容器状态 - docker network ls
docker network inspect (网络名字)
注: To check the container assigned IP on the specified networkdocker network connect
docker ps
docker containner list
docker container stop (name> / container id)
docker restart
docker container logs –tail 100 (name)
docker container rm -f $
注: 清空所有containerdocker version
docker update
docker exec -it (container name) bash
注: Enter a running container shell
Docker 网络
Docker有五种类型网络
- brdige:类似NAT 内网映射
- host:用host的ip,映射在不同的端口上
- overlay
- macvlan:虚拟mac给container
- none
我们最关心的是macvlan,因为大部分网络都用layer 2进行域隔离。所以我们需要用到docker host的sub-interface作为macvlan的载体。
- 通过OMV网络界面创建vlan sub-interface
- 交换对应端口要改成trunk port
- 通过OMV docker界面创建macvlan 网络,指定parent interface 为vlan sub-interface
命令行方式
- ip addr | grep mtu
docker network create -d macvlan
–subnet=<10.0.10.0/24> –gateway=<10.0.10.1>
-o parent=(eth0.10)
(macvlan10)
注: 你可以直接创建mvlan,sub-interface会自动创建docker network ls
docker network connect
–ip=<10.0.20.3>
(macvlan20)
(container1)docker exec -ti container1 ip addr | grep ‘mtu|inet’
注: 查看container IP
Docker 用户和用户文件映射
docker是轻型虚拟机,所以要进行文件夹映射作为docker container的虚拟硬盘使用。使用OMV的文件,就设计用户名/用户组。OMV的新建用户,默认用户组都是users;需要命令行把用户从users组移除。
usermod -a -G group1 user1
注: 把user1加入到group1组中usermod -g group1 user1
注: 把user1加入到group1作为主用户组gpasswd -d user1 group1
注: 把user1从group1中移除id user1
注: 查看user1的id和组id,用于container 用户映射
NextCloud Container
NextCloud就是本地版的dropbox,构建私有云必备。
docker create
–name=nextcloud
–net=(macvlan)
–ip=(ip address)
-e PUID=1000
-e PGID=100
-e TZ=Asia/Singapore
-p 443:443
-v /sharedfolders/nextcloud/config:/config
-v /sharedfolders/nextcloud/data:/data
–restart unless-stopped
linuxserver/nextcloud
网络选择macvlan,默认端口443
注: 你要提前在OMV GUI新建共享文件夹,比如/sharedfolders/nextcloud/config和/sharedfolders/nextcloud/data,这样作为数据库的配置文件存储位置
NextCloud的配置文件在:/sharedfolders/nextcloud/config/www/nextcloud/config/config.php
注: 你可以修改数据库地址,数据库实例用户名和密码
MariDB Container
创建名为nextclouddb的MariDB Container
docker create
–name=nextclouddb
-e PUID=1000
-e PGID=100
-e MYSQL_ROOT_PASSWORD=(mysql_root_password)
-e TZ=Asia/Singapore
-p 3306:3306
-v /sharedfolders/nextcloud/db:/config
–restart always
linuxserver/mariadb
网络选择Macvlan,默认端口3306
注: 你要提前在OMV GUI新建共享文件夹,比如/sharedfolders/nextcloud,这样作为数据库的配置文件存储位置
绑定nextcloud服务器地址
- cd /shareedfolder/AppData/Nextclouddb
- nano custom.cnf
bind-address= (NextCloud IP)
注: 绑定NextCloud Server IP,意思是只有NextCloud服务器才可以访问数据库
新建数据库用户与实例
SSH 登录
- cd
- clear
- docker restart nextclouddb
docker exec -it nextclouddb bash
注: 进入container console界面mysql -uroot -p
注: 输入之前创建Container时候MySQL root 密码
登录之后进行如下数据库实例创建
SELECT User, Host FROM mysql.user WHERE Host <> ‘localhost’;
注: 检查当前用户
CREATE USER ‘db_user’ IDENTIFIED BY ‘db_user_password’;
注: 新建数据库用户
CREATE DATABASE IF NOT EXISTS nextclouddb;
注: 新建数据库实例
GRANT ALL PRIVILEGES ON nextclouddb.* TO ‘db_user’ IDENTIFIED BY ‘db_user_password’;
注: 文件型数据库,直接授权就可以
- quit
- exit
Tips
- Nextcloud Docker 点我穿越门
- MariDB Docker 点我穿越门
- Transmission Docker 点我穿越门
- Jackett Docker 点我穿越门
- Nextcloud 安装视频 点我穿越门
- Docker Cheatsheet 点我穿越门
- Docker 网络 点我穿越门
- Docker macvlan 配置 点我穿越门