使用Docker部署NextCloud+MySQL構建私有雲盤


本文記錄了我在CoreOS服務器上利用Docker部署NextCloud+MySQL實現私有雲盤的過程。

環境

服務器:
阿里雲學生機
CoreOS

本地:
MacBook Pro
macOS 10.14.3

方法

大體方案就是在Docker中分別建立兩個容器,一個是MySQL,一個是NextCloud,將MySQL link到NextCloud上作為數據庫來使用。

創建MySQL容器

docker run --name=nextcloud_db -e MYSQL_ROOT_PASSWORD=passwd -d mysql:5

這里使用mysql:5而非mysql:latest是因為,最新版本的MySQL好像更改了默認的加密方法,和NextCloud配合使用會產生一些錯誤。
我索性就采用了低版本的MySQL(參考了一些修改加密方法的博客但是沒有效果啊 TAT)。
其中passwd部分請替換為你想使用的密碼。

docker exec -it nextcloud_db mysql -u root -p
passwd: ....
mysql> CREATE DATABASE nextcloud;
mysql> exit;

這里是進入MySQL並創建一個新的數據庫,命名為nextcloud(當然你可以改為自己喜歡的名字)。

創建NextCloud容器

docker run --name=nextcloud --link nextcloud_db:db -p 1080:80 -d nextcloud

使用這一行命令創建一個NextCloud容器並且將另一個容器“鏈接”過來作為數據庫使用,在這個容器內部其地址被映射為db(可以修改為你喜歡的名字)。
這里我使用的就是NextCloud在Docker Hub上的官方鏡像。
並且我將NextCloud內部的80端口映射到了外部的1080端口上,所以在瀏覽器中訪問http://your_server_ip:1080就可以看到NextCloud界面了。
之后就參照提示在瀏覽器中完成設置即可。
在這里,我讓NextCloud以root賬戶訪問MySQL數據庫(當然並不推薦這么做,但是我懶得創建一個新的MySQL賬戶了),密碼就是passwd,數據庫名就是nextcloud,數據庫地址就是db。

后記

使用MySQL是因為NextCloud推薦這么做(尤其是在使用客戶端及多用戶功能時),我沒有學習過數據庫的知識,不知道為何默認的SQLite不被推薦使用。
NextCloud的所有文件會儲存在 /var/lib/docker/volumes/nextcloud/ 下,即使容器損壞或被刪除也不會消失,可以在這里找到。
編寫本文時所有命令都是靠回憶寫下的,但願沒有差錯……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM