Docker快速部署 WebDav、NextCloud、jellyfin 共享文件和视频

基础环境

#查看系统版本

root@bluish:~# cat /etc/issue
Ubuntu 18.04.3 LTS \n \l

#更新系统

root@bluish:~# apt-get update && apt-get upgrade

#安装配置远程桌面

ensys@bluish:~/.vnc$ sudo apt install xfce4

ensys@bluish:~/.vnc$ sudo apt-get install vnc4server

ensys@bluish:~/.vnc$ vim ~/.vnc/xstartup 

#替换为如下内容

#!/bin/sh  
unset SESSION_MANAGER  
unset DBUS_SESSION_BUS_ADDRESS  
startxfce4 &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey

#启动远程桌面

ensys@bluish:~/.vnc$ vncserver -geometry 1280x1024

在这里插入图片描述
Vimplus(可选)

git clone https://github.com/chxuan/vimplus.git
cd ./vimplus
sudo ./install.sh

在这里插入图片描述

Docker容器

#新建分区并挂载

root@bluish:~# fdisk /dev/sdb

#查看分区和挂载情况
在这里插入图片描述
#修改 docker 镜像和容器存储目录

root@bluish:~# vim /lib/systemd/system/docker.service

#docker镜像和容器迁移到新目录

root@bluish:~# mv /var/lib/docker/* /data/docker/

在这里插入图片描述
#重启 docker 服务

root@bluish:~# systemctl daemon-reload

root@bluish:~# systemctl restart docker

#验证是否迁移成功

root@bluish:~# docker ps -a

在这里插入图片描述

jellyfin 容器

/media 作为媒体存储目录,相当庞大,宿主机映射 /storage/jellyfin 目录给它

root@bluish:~# docker pull jellyfin/jellyfin
root@bluish:~# docker run --name=jellyfin -d -p 8096:8096 -v /jellyfin/config:/config -v /storage/jellyfin:/media jellyfin/jellyfin

bytemark/webdav 容器

#容器内目录 /var/lib/dav 不可修改

root@bluish:~# docker pull bytemark/webdav

root@bluish:~# docker run --name webdav --restart always -v /storage/jellyfin:/var/lib/dav -e AUTH_TYPE=Digest -e USERNAME=Alice -e PASSWORD=DAV_PASS --publish 8888:80 -d bytemark/webdav

#启动容器成功会在宿主机映射目录下生成两个文件,data 目录为 webdav 共享目录内容
在这里插入图片描述

nextcloud 容器

nextcloud需要一个数据库,我们也使用 docker容器来迅速部署一个 Mysql 服务

mysql 容器

root@bluish:~# docker pull docker.io/centos/mysql-57-centos7

root@bluish:~# docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=ROOT_PASS -e MYSQL_USER=user -e MYSQL_PASSWORD=USER_PASS -e MYSQL_DATABASE=nextcloud -p 3306:3306 docker.io/centos/mysql-57-centos7

nextCloud 容器

/var/www/html/data 为 NextCloud 数据存储目录,相当庞大,宿主机映射 /storage/nextcloud 给它

docker pull docker.io/nextcloud

docker run -d --name=nextcloud --restart=always -p 80:80 -v /storage/nextcloud:/var/www/html/data docker.io/nextcloud 

Tips: 容器IP可以用如下命令检索

root@bluish:~# docker inspect mysql |grep IPAddress

在这里插入图片描述
打开宿主机 IP + 映射端口号就可以访问了:
在这里插入图片描述
NextCloud 支持 webdav 协议访问,和上面部署的 webdav 容器二选一

Linux上下载共享视频或文件放在/storage/jellyfin/data目录下就行了,如果要使用 NextCloud 共享需要远程桌面使用浏览器登录转存一下,本地转存很快的,实际上就是你的服务器磁盘读写速度。
在这里插入图片描述

测试

AppStore下载 NextCloud,登录
在这里插入图片描述
nPlayer webdav 连接
在这里插入图片描述
查看宿主机映射的目录存储使用情况
在这里插入图片描述
如果不使用volume卷,容器就会撑得很大,而且不利于数据持久化,因为Docker不会在容器删除时删除其挂载的数据卷。而且还可以实现容器间数据共享,灵活规划系统分区。

猜你喜欢

转载自blog.csdn.net/geeksoarsky/article/details/103760327