docker利用nextcloud搭建一個(gè)私有百度云盤
突然有個(gè)需求,需要搭建一個(gè)文檔存儲(chǔ)協(xié)同的私有服務(wù),經(jīng)過多方搜索后找到onlyoffice服務(wù)可以滿足我的文檔編輯相關(guān)需求,而存儲(chǔ)方面則可以利用nextcloud搭建一個(gè)私有云盤服務(wù)來滿足,這樣利用nextcloud+onlyoffice就可以滿足我的文檔在線協(xié)同存儲(chǔ)需求,其實(shí)說白了就是可以編輯ofiice等文件并分享的的私有云盤.
前期我采用傳統(tǒng)的鏡像一個(gè)一個(gè)啟動(dòng),后邊我又換成了docker-compose來部署,所以我也提供了兩種方案。還有一點(diǎn)就是我的數(shù)據(jù)庫采用的是postgresql,系統(tǒng)還支持mysql和MariaDB,或者直接使用內(nèi)置的sqLite。如果采用mysql,MariaDB配置方式和我的postgresql大同小異,內(nèi)置sqLite則簡單很多,直接忽略文章中數(shù)據(jù)庫這一塊的所有操作。

正文
安裝啟動(dòng)服務(wù)
方式一傳統(tǒng)部署,方式二docker-compose部署,推薦第二種,簡單。
不管哪種,先安裝docker
linux下的docker安裝
方式一
拉取nextcloud鏡像和數(shù)據(jù)庫鏡像
數(shù)據(jù)庫鏡像是可選的,還可以采用mysql或者直接使用nextcloud內(nèi)置的sqlLite,我這邊采用postgresql。還有就是因?yàn)槲倚枰僮鱫ffice,還安裝了onlyoffice服務(wù),可以忽略。
docker pull docker.io/nextcloud docker pull postgres docker pull onlyoffice/documentserver
創(chuàng)建啟動(dòng)容器
如果不使用內(nèi)置數(shù)據(jù)庫,那首先數(shù)據(jù)庫需要初始化好存儲(chǔ)倉庫,我創(chuàng)建了一個(gè)cloud倉庫專門用來保存數(shù)據(jù)并且啟動(dòng)。
啟動(dòng)數(shù)據(jù)庫(非必須)
docker run --restart=always --name postgresql -v /etc/localtime:/etc/localtime -v /data/postgresql:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -d -p 35432:5432 postgres
-e POSTGRES_PASSWORD=123456的意思是數(shù)據(jù)庫密碼默認(rèn)123456
啟動(dòng)office服務(wù)(非必須)
docker run --name onlyoffice -i -t -d -p 9000:80 onlyoffice/documentserver
啟動(dòng)nextcloud
docker run --restart=always --name nextcloud -p 8080:80 -v /nextcloud:/var/www/html --link postgresql:postgresql -d nextcloud
-name nextcloud 設(shè)置容器名字
--restart=always 表示總是自啟動(dòng),會(huì)在關(guān)機(jī)等重啟機(jī)器后重啟容器
-p 8080:80 表示把本機(jī)8080端口映射到容器內(nèi)的80端口,就是你要訪問時(shí)需要本機(jī)ip:8080(你可以選擇自己想要端口).
-v /nextcloud:/var/www/html 用來把容器相關(guān)資源映射到本地/nextcloud目錄下(你可以選擇自己對(duì)應(yīng)目錄),方便數(shù)據(jù)持久化和外部修改頁面配置等等.
--link postgresql:postgresql 非必須,鏈接postgresql數(shù)據(jù)庫的容器,方便配置(后面細(xì)講作用)
方式二
安裝docker-compose
curl -L https://github.com/docker/compose/releases/download/1.10.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
編寫docker-compose文件
創(chuàng)建一個(gè)專屬文件夾,以nextcloud為例,在里面創(chuàng)建docker-compose.yml文件
version: '2' services: nextcloud: container_name: nextcloud_app image: nextcloud ports: - "8080:80" volumes: - ./app:/var/www/html links: - postgresql restart: always onlyoffice: container_name: nextcloud_office image: onlyoffice/documentserver ports: - "9000:80" restart: always postgresql: container_name: nextcloud_db image: postgres:11.4 environment: - POSTGRES_PASSWORD:123456 volumes: - ./postgresql:/var/lib/postgresql/data - /etc/localtime:/etc/localtime restart: always networks: default: external: name: nextcloud
啟動(dòng)容器
在docker-compose.yml同級(jí)目錄操作。
第一次啟動(dòng)會(huì)自動(dòng)拉取鏡像,所以要有網(wǎng)。并且采用了網(wǎng)絡(luò)連接方式,得手動(dòng)創(chuàng)建一個(gè)net橋。
創(chuàng)建net:
docker network create nextcloud
啟動(dòng):
docker-compose up -d
等到以上服務(wù)正式啟動(dòng)好了后,接下來就是配置了。
初始化配置
瀏覽器訪問ip:8080

4.1 輸入管理員賬戶密碼
4.2 數(shù)據(jù)目錄建議保持不動(dòng),默認(rèn)就好
4.3 數(shù)據(jù)庫選擇
內(nèi)置SQLite數(shù)據(jù)庫,存儲(chǔ)文件較少可以直接選擇默認(rèn)安裝完成就好.
如果選用其他數(shù)據(jù)庫,以PostgreSQL為例:

數(shù)據(jù)庫用戶名和密碼就不用說了,數(shù)據(jù)庫名對(duì)應(yīng)數(shù)據(jù)庫需要提前創(chuàng)建好.
最重要的數(shù)據(jù)庫主機(jī)就是數(shù)據(jù)庫的訪問ip+端口號(hào).
注: 但是我填的postgresql是不是有點(diǎn)眼熟,對(duì),就是--link(方式二里面使用的net方式,目的一樣). 我的數(shù)據(jù)庫用的也是docker容器,使用--link可以將PostgreSQL數(shù)據(jù)庫的容器以別名形式傳遞過來,所以這邊直接可以使用postgresql表示數(shù)據(jù)庫(這是docker容器間的一種通信方式,注意一點(diǎn)是PostgreSQL容器一定要在nextcloud容器前啟動(dòng)).
白名單配置和使用
如果你需要域名和一些新的ip端口可以訪問,需要修改/nextclou/config/config.php中配置(沒有請(qǐng)?zhí)砑?
'trusted_domains' => array ( 0 => 'www.xxx.com:10080', ),
然后就是使用和郵箱的配置可以進(jìn)行自行摸索.
配置onlyoffice(非必須,我只是為了在線操作word等)
進(jìn)入云盤以管理員賬號(hào)登錄,點(diǎn)擊用戶->應(yīng)用來安裝ONLYOFFICE插件:

然后用戶->設(shè)置->ONLYOFFICE來填入自己服務(wù)的地址即可。

效果圖:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker部署Java應(yīng)用程序的實(shí)現(xiàn)步驟
本文主要介紹了Docker部署Java應(yīng)用程序的實(shí)現(xiàn)步驟,通過將Java應(yīng)用程序打包成一個(gè)Docker鏡像,可以實(shí)現(xiàn)快速部署、資源隔離和靈活擴(kuò)展,感興趣的可以了解一下2024-03-03
Docker安裝Redis并介紹可視化客戶端進(jìn)行操作
這篇文章主要介紹了Docker安裝Redis并介紹可視化客戶端進(jìn)行操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
docker-compose搭建prometheus+grafana+釘釘告警
本文主要介紹了docker-compose搭建prometheus+grafana+釘釘告警,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
如何查看docker run啟動(dòng)參數(shù)命令(推薦)
這篇文章主要介紹了如何查看docker run啟動(dòng)參數(shù)命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
使用Docker部署MySQL數(shù)據(jù)庫的兩種方法
在現(xiàn)代軟件開發(fā)中,MySQL 是一種流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),因其可靠性和易用性受到廣泛歡迎,通過 Docker,可以快速、便捷地部署和管理 MySQL 數(shù)據(jù)庫實(shí)例,本文將介紹兩種通過 Docker 部署 MySQL 的方法,需要的朋友可以參考下2024-10-10
解決docker啟動(dòng)容器失敗:cannot?access‘/docker-entrypoint-initdb.d/‘:
這篇文章主要介紹了解決docker啟動(dòng)容器失敗:cannot?access‘/docker-entrypoint-initdb.d/‘:Operation?not?permitted,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05

