Pages

Saturday, 12 August 2017

如何在 VPS 上使用 Docker 部署一个带有离线下载功能的网盘


下面将介绍如何在 VPS 上使用 Docker 部署一个带有离线下载功能的网盘
本文包括:
  • 如何使用 Docker 部署 MySQL 数据库
  • 如何使用 Docker 部署 ownCloud 网盘
  • 如何使用 Docker 部署另一个 ownCloud 镜像以实现离线下载功能而不丢失用户数据
整个过程中还包括:
  • 如何使用 Docker Volume 功能实现数据持久化
  • 如何使用 Docker Link 功能连接容器

环境

  • 一台安装好了 Docker 的 Ubuntu 主机
  • 请谨慎直接复制粘贴命令!

第一步 - 新建数据目录

sudo mkdir /var/data
sudo mkdir /var/data/mysql 
sudo mkdir /var/data/mysql/owncloud 
sudo mkdir /var/data/owncloud 

第二步 - 拉取镜像

docker pull owncloud
docker pull mysql 

第三步 - 配置并启动 MySQL 容器

docker run --name mysql-owncloud \ 
-v /var/data/mysql/owncloud:/var/lib/mysql \ 
-e MYSQL_ROOT_PASSWORD=YOUR_MYSQL_ROOT_PASSWORD \ 
-e MYSQL_DATABASE=owncloud \ 
-e MYSQL_USER=owncloud \ 
-e MYSQL_PASSWORD=YOUR_MYSQL_PASSWORD \ 
-d mysql
命令中的 -v 参数通过 Docker Volume 将 MySQL 容器中的存储目录(/var/lib/mysql)与刚才在宿主机中新建的 MySQL 数据目录(/var/data/mysql/owncloud)连接。数据库名和数据库用户被设置为了 owncloud 。请把命令中的 YOUR_MYSQL_ROOT_PASSWORD 和 YOUR_MYSQL_PASSWORD 分别修改为你要设置的 root 用户密码和 owncloud 用户密码。

第四步 - 配置并启动 ownCloud 容器

(如果你想直接部署带有离线下载功能的 ownCloud 镜像而不是学习安装、迁移过程,请直接跳到第六步第二段)
$ docker run --name=owncloud \ 
--link=mysql-owncloud:mysql-owncloud \ 
-v /var/data/owncloud:/var/www/html/data \
-p 5679:80 \ 
-d owncloud
命令中的 -v 参数通过 Docker Volume 将 ownCloud 容器中的存储目录(/var/www/html/data)与刚才在宿主机中新建的 ownCloud 数据目录(/var/data/owncloud)连接。我们还通过命令中的 --link 参数使用 Docker Link 功能将刚才启动的 MySQL 容器(名为 mysql-owncloud )与 ownCloud 容器连接,别名也为 mysql-owncloud 。冒号前面的是 MySQL 容器名,后面的是在 ownCloud 容器中的别名,可以自己修改。我们发布容器的 80 端口为宿主机上的 5679 端口供我们访问。你可以将命令中的 5679 改为你想设置的发布端口,一般设置为 80 端口。

第五步 - 安装 ownCloud

打开浏览器,进入 ownCloud 安装向导。设置管理员用户名和密码,然后点击“存储和数据库”,选择 MySQL/MariaDB 数据库,输入数据库用户名 owncloud、密码、数据库名 owncloud,最后一项是数据库主机,默认为 localhost,我们把它改为刚才设置的 MySQL 容器别名(在本例中是 mysql-owncloud),点击安装完成。
这样,使用了独立 MySQL 容器和本地存储目录的 ownCloud 容器就部署完成并启动了。这意味着,程序将使用 MySQL 数据库而非 SQLite 数据库而提升性能,你的 MySQL 数据库数据和存储的文件将存在宿主机上,不会因容器重启而丢失。

第六步 - 部署带有离线下载功能的 ownCloud 镜像

$ docker stop owncloud
$ docker rm owncloud
我们停止并删除刚刚了部署的 ownCloud 容器,但由于我们使用了 Docker Volume 功能,用户存储在 ownCloud 中的文件都没有被删除。
(想直接部署带有离线下载功能的 ownCloud 镜像的从这里继续)
$ docker pull bohan/owncloud-with-ocdownloader-and-yt-dl
$ docker run --name=owncloud \ 
--link=mysql-owncloud:mysql-owncloud \ 
-v /var/data/owncloud:/var/www/html/data \
-p 5679:80 \ 
-d bohan/owncloud-with-ocdownloader-and-yt-dl
拉取带有离线下载功能的 bohan/owncloud-with-ocdownloader-and-yt-dl 镜像并用之前的配置部署启动,可以看到我们再次通过 Volume 连接之前的文件存储目录,这样就能使用之前的 ownCloud 文件数据。我们同时又连接了 MySQL 数据库容器,以使用之前的 MySQL 数据库数据。
打开浏览器,进入 ownCloud 安装向导。新建一个与之前用户名不同的管理员用户,像刚才一样输入数据库连接信息,完成安装。接着退出登录,登录你之前的管理员用户,删除刚刚新建的第二个管理员用户。

大功告成

这样,你便成功地在 VPS 上使用 Docker 部署了一个带有离线下载功能的网盘。进入界面左上角的 ocDownloader 就可以可以新建 HTTP、FTP、BT 种子、Youtube 视频的离线下载,存储在 ownCloud 网盘中。


http://www.cnblogs.com/bohanyang/p/deploy-owncloud-with-docker.html

No comments:

Post a Comment