本文記錄了我在CoreOS服務器上利用Docker部署NextCloud+MySQL實現私有云盤的過程。mysql
環境
服務器: 阿里雲學生機 CoreOSsql
本地: MacBook Pro macOS 10.14.3docker
方法
大致方案就是在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/ 下,即便容器損壞或被刪除也不會消失,能夠在這裏找到。 編寫本文時全部命令都是靠回憶寫下的,希望沒有差錯……阿里雲