搭建基于Docker的NextCloud網(wǎng)盤(pán)
在上次的教程中,寶寶使用了基于CentOS7.6搭建OwnCloud網(wǎng)盤(pán),不過(guò)根據(jù)反饋來(lái)看有很多的寶寶喜歡用Ubuntu+Docker的方式,并且說(shuō)OwnCloud已停止更新。
今天就基于Ubuntu 18.10使用Docker搭建NextCloud,主要是讓寶寶們學(xué)會(huì)怎么使用docker這個(gè)簡(jiǎn)單的東西~
有些寶寶說(shuō)用群暉搭建,考慮到群暉用戶(hù)較少,還請(qǐng)寶寶們諒解~~~~
本教程基于Ubuntu 18.10,VMware Workstation Pro 15.0.2 橋接模式,使用普通用戶(hù)。
最低要求:Ubuntu 16.04(低于此版本不可使用[systemctl],需使用[service]命令)
可使用虛擬機(jī)或物理機(jī)搭建
第一步:安裝Ubuntu 18.10并配置環(huán)境
1、下載Ubuntu 18.10鏡像
2、安裝(過(guò)程略,只強(qiáng)調(diào)注意事項(xiàng))
在安裝過(guò)程中使用正常安裝模式,最小化安裝可能會(huì)有依賴(lài)問(wèn)題。同時(shí)寶寶也取消了安裝時(shí)下載更新,不然奇慢無(wú)比~
3、更換Ubuntu的apt源
由于apt源在國(guó)外,訪問(wèn)速度感人,寶寶建議最好換成國(guó)內(nèi)源。
(使用sudo命令會(huì)要求輸入當(dāng)前用戶(hù)密碼,密碼不會(huì)有提示標(biāo)志噠~)
[sudo gedit /etc/apt/sources.list]
將此文件所有內(nèi)容全部刪除,并替換為
[deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse]
一行一個(gè)deb哦~
之后更新apt源
[sudo apt update -y]
更新軟件包,保證寶寶們的環(huán)境一致,減少錯(cuò)誤率
[sudo apt upgrade -y]
第二步:安裝Docker并設(shè)置環(huán)境
1、安裝docker
[sudo apt install docker.io]
[sudo systemctl start docker](啟動(dòng)docker)
[sudo systemctl enable docker](將docker設(shè)置為開(kāi)機(jī)啟動(dòng))
2、創(chuàng)建用于docker的用戶(hù)
我們實(shí)驗(yàn)當(dāng)中使用root來(lái)運(yùn)行docker是沒(méi)有問(wèn)題的,但是在生產(chǎn)環(huán)境中有嚴(yán)重的安全問(wèn)題,在此我們創(chuàng)建一個(gè)用戶(hù)和用戶(hù)組去運(yùn)行docker
[sudo useradd -m -s /bin/bash docker_user]
(新建一個(gè)叫做docker_user的用戶(hù),參數(shù)m表示自動(dòng)建立用戶(hù)的登錄目錄,s用于指定此用戶(hù)的shell)
[sudo passwd docker_user]
(passwd用來(lái)更改docker_user的登錄密碼)
[sudo usermod -aG docker docker_user]
(將此用戶(hù)加入docker組,-aG表示將用戶(hù)追加到組,命令對(duì)大小寫(xiě)敏感)
[su–docker_user]
(切換至docker_user用戶(hù),注意:中劃線左右均有空格,不可連寫(xiě),表示變更帳號(hào)為docker_user并改變工作目錄至此用戶(hù)家目錄)
[!--empirenews.page--]
第三步:部署NextCloud(注:切換至docker_user的操作均不使用sudo命令)
1、搜索docker Hub中的NextCloud鏡像
[docker search nextcloud]
2、推送鏡像到本地
[docker pull nextcloud]
3、啟動(dòng)容器
[docker run -d --restart=always --name nextcloud -p 80:80 -v/root/nextcloud:/data docker.io/nextcloud]
(-d參數(shù)讓此容器在后臺(tái)運(yùn)行,--restart參數(shù)指定容器停止后的重啟策略為退出時(shí)總是重啟,-p指定容器的暴露端口,-v指定容器掛載目錄。此時(shí)注意網(wǎng)盤(pán)空間問(wèn)題,掛載目錄盡量大些,否則可能空間不足,不過(guò)實(shí)驗(yàn)環(huán)境就無(wú)所謂咯~~~)
4、查看容器狀態(tài)
[docker ps -a]
(CONTAINER ID,在后面要用到,notice一下)
5、初始化NextCloud
使用瀏覽器打開(kāi)NextCloud的網(wǎng)頁(yè),在虛擬機(jī)中使用[http://localhost],在內(nèi)網(wǎng)則使用[http://ip]打開(kāi),比如寶寶的IP是172.16.0.237,那就在瀏覽器輸入:
[http://172.16.0.237/]
(直接設(shè)置管理員用戶(hù)密碼即可,無(wú)需配置數(shù)據(jù)庫(kù),F(xiàn)insh setup)
第四步:不受信任的域名
至此,NextCloud已搭建完成,不過(guò)寶寶們會(huì)發(fā)現(xiàn),這個(gè)NextCloud頁(yè)面只有安裝完成第一次輸入的域名可以打開(kāi),其他域名或者ip會(huì)提示域名不受信任。沒(méi)關(guān)系,這是由nextcloud內(nèi)部的config.php所決定的,下面就來(lái)修改這個(gè)文件吧。
1、在服務(wù)器切換至docker_user用戶(hù)
2、進(jìn)入NextCloud容器內(nèi)部并安裝vim編輯器
[docker exec -it CONTAINER ID /bin/bash]
(CONTAINER ID為[docker ps -a ]所顯示的ID)
[apt-get install vim -y]
(由于是國(guó)外服務(wù)器,速度會(huì)比較慢,不過(guò)下載文件不大,還是可以忍噠~)
3、修改config.php文件
[cd config]
(cd命令用于切換工作目錄,此時(shí)使用相對(duì)路徑切換至當(dāng)前目錄的config文件夾下,此文件絕對(duì)路徑為/var/www/html/config/config.php)
[vim config.php]
(將圖上的高亮部分改為下圖即表示允許全部域名訪問(wèn))
(使用vim編輯器修改文件。方向鍵控制光標(biāo),定位后使用[o]按鍵來(lái)編輯,編輯完成后按下ESC鍵退出編輯,最后用[:wq]保存并退出編輯返回至容器終端)
4、重新載入配置
[service apache2 reload]
[exit](退出容器,返回至服務(wù)器終端)