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不會在容器刪除時刪除其掛載的數據卷。而且還可以實現容器間數據共享,靈活規劃系統分區。

發佈了42 篇原創文章 · 獲贊 12 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章