ownCloud 跨平臺(tái)支持 Windows、Mac、Android、iOS、Linux 等平臺(tái),而且還提供了網(wǎng)頁版和 WebDAV 形式訪問,因此你可以在任何電腦、手機(jī)上都能輕松獲取你的文件了。
一、安裝Docker
在Centos中,使用腳本直接安裝Docker
## 確保 yum 包更新到最新。
sudo yum -y update
## 卸載舊版本
sudo yum remove docker docker-common docker-selinux docker-engine
<!-- more -->
## 安裝需要的軟件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
## 安裝container-selinux
yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.107-1.el7_6.noarch.rpm
## 設(shè)置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## 安裝
sudo yum -y install docker-ce
## 設(shè)置開機(jī)啟動(dòng)
sudo systemctl enable docker
## 啟動(dòng)docker
sudo systemctl start docker
## 顯示版本
docker version
二、Compose 安裝
Linux 上我們可以從 Github 上下載它的二進(jìn)制包來使用,最新發(fā)行的版本地址:https://github.com/docker/compose/releases。
運(yùn)行以下命令以下載 Docker Compose 的當(dāng)前穩(wěn)定版本:
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
將可執(zhí)行權(quán)限應(yīng)用于二進(jìn)制文件:
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
三、安裝owncloud
1. 創(chuàng)建yml文件
在適當(dāng)?shù)哪夸浿校瑒?chuàng)建docker-compose.yml文件,文件內(nèi)容:
version: '2.1'
volumes:
files:
driver: local
mysql:
driver: local
backup:
driver: local
redis:
driver: local
services:
owncloud:
image: owncloud/server:${OWNCLOUD_VERSION}
restart: always
ports:
- ${HTTP_PORT}:8080
depends_on:
- db
- redis
environment:
- OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN}
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=owncloud
- OWNCLOUD_DB_HOST=db
- OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME}
- OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD}
- OWNCLOUD_MYSQL_UTF8MB4=true
- OWNCLOUD_REDIS_ENABLED=true
- OWNCLOUD_REDIS_HOST=redis
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- files:/mnt/data
db:
image: webhippie/mariadb:latest
restart: always
environment:
- MARIADB_ROOT_PASSWORD=owncloud
- MARIADB_USERNAME=owncloud
- MARIADB_PASSWORD=owncloud
- MARIADB_DATABASE=owncloud
- MARIADB_MAX_ALLOWED_PACKET=128M
- MARIADB_INNODB_LOG_FILE_SIZE=64M
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- mysql:/var/lib/mysql
- backup:/var/lib/backup
redis:
image: webhippie/redis:latest
restart: always
environment:
- REDIS_DATABASES=1
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- redis:/var/lib/redis
2. 創(chuàng)建環(huán)境配置文件
cat << EOF > .env
OWNCLOUD_VERSION=10.5
OWNCLOUD_DOMAIN=localhost
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
HTTP_PORT=8080
EOF
| 配置文件 | 描述 | 例如 |
|---|---|---|
| OWNCLOUD_VERSION | ownCloud 版本 | latest |
| OWNCLOUD_DOMAIN | 域名 | localhost |
| ADMIN_USERNAME | 管理員賬號(hào) | admin |
| ADMIN_PASSWORD | 管理員密碼 | 123456 |
| HTTP_PORT | 訪問端口 | latest |
3. 安裝
docker-compose up -d
4. 查看結(jié)果
Name Command State Ports
__________________________________________________________________________________________
ownclouddockerserver_db_1 … /bin/s6-svscan /etc/s6 Up 3306/tcp
ownclouddockerserver_owncloud_1 … /usr/bin/owncloud server Up 0.0.0.0:8080->8080/tcp
ownclouddockerserver_redis_1 … /bin/s6-svscan /etc/s6 Up 6379/tcp
5. 運(yùn)行測(cè)試

6. 文件目錄
上傳的文件會(huì)在Docker對(duì)應(yīng)的volumes目錄中
/var/lib/docker/volumes/owncloud_files/_data/files/用戶名
如果未設(shè)置啟用服務(wù)器端加密,則文件就是網(wǎng)盤中的原文件,可以直接拿出來用
7. Nginx反向代理
7.1 進(jìn)入容器內(nèi)部
docker exec -it owncloud_owncloud_1 /bin/bash
7.2 修改配置文件
找到/var/www/owncloud目錄下的config/config.php配置文件,修改配置
'trusted_domains' =>
array (
0 => 'pan.zengwu.com.cn', // 添加自己的域名
1 => 'localhost'
),
'overwrite.cli.url' => 'https://pan.zengwu.com.cn/', // 修改為自己的域名
7.3 配置nginx
# http 轉(zhuǎn) https
server{
listen 80;
return 301 https://$host$request_uri;
}
# https域名
server{
listen 443 ssl;
server_name pan.zengwu.com.cn;
index index.html;
ssl on;
ssl_certificate /etc/nginx/key/pan.zengwu.com.cn.pem;
ssl_certificate_key /etc/nginx/key/pan.zengwu.com.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:8080/;
# header 開始
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Cookie $http_cookie;
# header 結(jié)束
client_max_body_size 5G; # 允許上傳的文件大小
}
}