搭建owncloud

前提

相信你們都用過網盤,好比國外有 Google DriveDropbxOneDrive等,國內有 百度雲盤堅果雲等,這些都是公共網盤,因爲公司業務須要,想架設公司本身用的私有網盤。javascript

目前市面上,穩定、成熟的私有云存儲方案有:html

Seafile:國內團隊開發的一個國際化開源雲存儲項目
ownCloud:開源專業的私有云存儲項目java

另外,能夠多去關注下 nextcloud 項目,聽說 ownCloud 母公司破產後,原項目組的骨幹出走並以 ownCloud 項目 folk 出新項目 nextcloud 繼續開發。須要說明的是,ownCloud 母公司後來被一家德國公司收購了,ownCloud 項目還在繼續開發。python

這裏主要介紹 ownCloud 的搭建。mysql

ownCloud介紹

ownCloud 是開源的、免費的、專業的私有云存儲解決方案,以 AGPL 許可發佈,它能幫你快速地在服務器上架設一套專屬的私有云文件同步網盤,能夠像 Dropbox 那樣實現文件跨平臺同步、共享與團隊協做等。nginx

ownCloud 支持 Windows/Mac桌面端,IOS/Android手機端。基本能夠替代在線網盤如百度網盤等。sql

docker下安裝ownCloud

ownCloud項目的內核是使用PHP5編寫的,環境基於LAMP,支持SQLite、MySQL、Oracle、PostgreSQL等數據庫。
要是在服務器中,先搭建LAMP環境,再去安裝ownCloud,調試環境會很麻煩,耗時也長。能夠經過Docker來快速部署ownCloud。docker

安裝docker

服務器系統是:CentOS6.5,在此係統中安裝docker,請參考前面的文章:CentOS 6.x 上搭建docker數據庫

拉取ownCloud官方鏡像

ownCloud的官方docker鏡像頁面
這個鏡像,已經集成了 Apache + PHP 的環境。目前版本是:10.0.1瀏覽器

1 # docker pull owncloud

須要用root用戶拉取,不然會有警告:

Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?). Using system default: https://index.docker.io/v1/ Cannot connect to the Docker daemon. Is the docker daemon running on this host? 

改用MySQL數據庫

owncloud 默認使用 SQLite 數據庫,但對於更大的安裝,官方建議選擇另一個不一樣的數據庫,特別當使用桌面客戶端同步文件時,不鼓勵使用 SQLite

拉取 mysql 官方docker鏡像(目前最新是: 5.7.19 )

1 docker pull mysql

啓動 MySQL 容器,用做 owncloud 容器的數據庫。

docker run --name my-mysql -e MYSQL_ROOT_PASSWORD="Dwwe+=32H" -d mysql

 

啓動 owncloud 容器

docker run --name owncloud -p 5679:80   -v /data/db/owncloud:/var/www/html/data --link my-mysql:mysql -d owncloud

 

-p 5679:80 :因爲宿主機已開通80端口,爲了不衝突,將容器的80端口映射到宿主機的5679端口。
--link my-mysql:mysql :將 owncloud容器(客戶) 連接到 my-mysql容器(服務),連接別名:mysql

配置nginx反向代理

配置文件內容以下:

 1 upstream pan_server{
 2     server  127.0.0.1:5679;
 3 }
 4 
 5 server {
 6     listen   80;
 7     server_name pan.xxx.com;
 8     access_log /data/logs/nginx/pan.xxx.com.access.log;
 9     error_log /data/logs/nginx/pan.xxx.com.error.log;
10 
11     proxy_set_header X-Forwarded-For $remote_addr;
12 
13     location / {
14         proxy_set_header Host $host;
15         proxy_set_header X-Real-IP $remote_addr;
16         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
17         add_header Cache-Control  "no-cache";
18     
19         proxy_pass http://pan_server;
20         limit_rate 256m;
21         client_max_body_size 0;
22     }
23 }

 

安裝owncloud

在瀏覽器上訪問 pan.xxx.com,進入 owncloud 安裝步驟:

 

MySQL數據庫配置:

數據庫用戶:root
數據庫密碼:Dwwe+=32H
數據庫名:owncloud
數據庫主機:mysql 或 my-mysql

docker-compose 方式安裝

也能夠將上面啓動 owncloud 和 mysql 容器的兩個步驟合成一步完成,這裏介紹 docker-compose 的使用。

docker版本要求

想要用 docker-compose,docker版本必須大於等於 1.10.0,不然會報錯:

ERROR: The Docker Engine version is less than the minimum required by Compose. Your current project requires a Docker Engine of version 1.10.0 or greater. 

docker-compose 安裝

compose 能夠經過 Python 的 pip 工具進行安裝,能夠直接下載編輯好的二進制文件使用,甚至直接運行在 Docker 容器中。

# pip install -U docker-compose 

docker-compose.yml 文件編寫

version: '2'
services:
  owncloud:
    image: owncloud
    links: 
      - mysql:mysql
    volumes:
      - "/data/db/owncloud:/var/www/html/data"
    ports:
      - 5679:80
  mysql:
    image: mysql
    volumes:
      - "/data/db/mysql:/var/lib/mysql"
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: "Dwwe+=32H"
      MYSQL_DATABASE: ownCloud

docker-compose 運行和中止

注意:docker-compose 必須在 docker-compose.yml 文件所在目錄中執行,不然會報錯:

ERROR:
    Can't find a suitable configuration file in this directory or any parent. Are you in the right directory? Supported filenames: docker-compose.yml, docker-compose.yaml 

docker-compose 後臺啓動

1 docker-compose up -d

docker-compose 查看狀態

1 docker-compose ps

docker-compose 中止和刪除

docker-compose stop
dcoker-compose rm
至關上面兩條命令
dcoker-compose down
相關文章
相關標籤/搜索