使用docker快速部署owncloud私有云存储服务

点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~

owncloud 是个好东西,不管是作为私有云来存储文件,或者是分享文件给其他人、多人协作、本地文件夹映射都是非常好用的功能,在各大网盘都是龟速上传和下载的情况下,自建一个私有云就成了想当不错的选择。

得益于 docker 的存在,部署 owncloud 变得非常非常简单,不再需要折腾各种环境的坑,只需要注意一下安装的流程和简单的配置文件即可。

一、环境准备

不管是 linuxmacos 还是 windows,只需要装好了 dockerdocker-compose,都可以顺利的完成部署,推荐使用 linux 作为服务器系统来进行部署。

我自己是用一台旧笔记本装上了 ubuntu 放在家里作为服务器使用,相对于同样存储空间和带宽的云服务器来说,便宜了不止一点点,当然可靠性上就下降了太多。

如果不会安装 dockerdocker-compose,参考另一篇博文:在linux、mac下快速简单的安装docker

二、数据库准备

owncloud 支持 SQLiteMySQL/MariaDBPostgreSQL,如果已有数据库,可以跳过这一步。

在机器上新建一个 mysql 目录,然后在目录下新建一个 docker-compose.yml 文件,内容如下:

version: "3"
services:
  mysql:
    image: mysql:5.7 # 使用 mysql5.7 版本的镜像
    container_name: mysql # 容器名称
    restart: always # 自动重启策略
    ports:
      - 3306:3306 # 映射到宿主机的端口
    volumes:
      - ./conf.d:/etc/mysql/conf.d # 配置文件挂载的宿主机目录
      - ./data:/var/lib/mysql # 数据文件挂载的宿主机目录
    environment:
      - MYSQL_ROOT_PASSWORD=yourpasswd # 初始的 root 用户的密码

文件新建完成后,在当前目录下执行 docker-compose up --build -d 命令即可。

这时会发现当前目录下自动新建了 dataconf.d 两个目录,里面分别存储着数据库数据和配置,这样当容器重启时,之前的数据也不会丢失了。

使用 docker ps -a 命令即可看到刚才创建的 mysql 容器。

这里建议使用 navicat 连接上 mysql,然后新建一个用户和数据库给 owncloud 使用。
在这里插入图片描述
在这里插入图片描述

其实 mysql 容器的配置可以直接和 owncloud 写到同一个 docker-compose.yml 文件中,也无需映射端口到本机,但是我一般喜欢跑一个 mysql,然后给各个服务用,而不是一个服务单独跑一个 mysql。

二、owncloud 准备

在机器上新建一个 owncloud 目录,然后在目录下新建一个 docker-compose.yml文件,内容如下:

version: "3.1"
services:
  app:
    image: owncloud
    container_name: owncloud
    restart: always
    ports:
      - 9000:80
    volumes:
      - ./data:/var/www/html
    extra_hosts:
      - "dockerhost:${dockerhost}" # 宿主机的内网IP,便于容器内访问宿主机网络。

文件内容和上一部分的文件内容基本差不多,只是最后多了一项 extra_hosts

这是因为我们的 mysql 服务是单独在宿主机上跑的另一个容器,所以在 owncloud 容器中需要能够访问到宿主机的 63306 端口才行。

可以直接在配置数据库的时候填入宿主机的内网或公网IP,这里相当于将 dockerhost 直接解析到了那个IP,之后在配置的时候,直接输入 dockerhost 即可。

${dockerhost} 是读取的机器上的环境变量,需要手动设置一下这个环境变量,也可以直接使用 IP 来替换这一段(如 - "dockerhost:192.168.x.x"

三、启动 owncloud

owncloud 下执行 docker-compose up --build -d 命令,完成后执行 docker ps -a 就可以看到相应的容器啦。
在这里插入图片描述
同时目录下也会自动生成一个 data 目录,此目录下就存放了所有的 owncloud 代码、配置和数据,不管后期怎么重启容器,数据也不会丢失。

四、初始化配置

这个时候访问机器的 9000 端口,就看看到 owncloud 的配置页面了,填入相应的配置项。

因为我们之前设置了 dockerhost 指向宿主机的IP,所以这个时候我们直接在数据库部分填写 dockerhost:3306 即可,注意数据库的端口不要填错。

数据目录建议使用默认值,不要修改。
在这里插入图片描述

填完完成后,点击 安装完成 按钮进入下一步,等待一段时间后,页面将自动跳转向登录页面。
在这里插入图片描述

输入刚才配置的管理员账号密码,就大功告成啦.

第一次进入会有一个弹窗,提示你下载客户端,个人建议配合客户端使用才是最佳选择, 让客户端自动保持所有设备全端同步。
在这里插入图片描述

五、进阶配置

简单的使用,到上面就完了,但是在实际使用过程中,需要有一些注意的地方。

刚才我们是使用 IP:PORT 的形式进入的初始化配置页面,这个 IP:PORT 会被记录在 owncloud 的配置文件中,作为服务的地址,但是如果我们期望后期通过域名来访问的话,就会出现问题。

切换到 root 用户,进入 owncloud 目录下的 data 文件夹中,使用 ls 命令可以看到,owncloud 的所有相关文件都存放在此。

data 目录中的 config 目录即为存放配置文件的路径,vim ./config/config.php 查看配置文件信息。

<?php
$CONFIG = array (
  'instanceid' => 'occknie0ywch',
  'passwordsalt' => 'l4NblWwHaK8QfbCLU9i4WhWfd1QKXr',
  'secret' => 'AM8p4ZTxvXU05U9xCWkr3qfrY9EoSjVBspm08jrlrU3b7AAH',
  'trusted_domains' =>
  array (
    0 => '192.168.49.84:9000',
  ),
  'datadirectory' => '/var/www/html/data',
  'overwrite.cli.url' => 'http://192.168.49.84:9000',
  'dbtype' => 'mysql',
  'version' => '10.0.10.4',
  'dbname' => 'owncloud',
  'dbhost' => 'dockerhost:3306',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'owncloud',
  'dbpassword' => 'owncloud',
  'logtimezone' => 'UTC',
  'installed' => true,
);

各个配置项含义,可以参考文档:Config.php Parameters

如果需要使用域名,或改变端口等,则需要对其中的 trusted_domainsoverwrite.cli.url 字段都进行相应的修改。

同时在 overwrite.cli.url 上面加上一行 overwritehost => 域名

然后在 owncloud 目录下执行 docker-compose restart 命令重启容器即可。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值