NextCloud Docker環境搭建


NextCloud

  • 支持視頻倍速播放,最高4倍速
  • 支持移動端App,Web訪問
  • 👍👍👍

前言

  • 首先部署是需要數據庫的,我們這邊選擇Mysql
    • Mysql數據文件通過掛載的方式,防止容器掛掉數據庫數據丟失
  • Docker容器網絡通信,通過端口映射到容器內
    • 有利於通過主機端口訪問
  • 文件放在/root/docker-home/nextCloud,提前准備起來額
nextCloud
  - mysql
  - nextCloud
  - data
  - readme.md
  • 宿主機:宿主機是已經存在的機器,例如雲主機、實體機器(台式,筆記本)、本地虛擬機(virtualbox VMware)、Nas

安裝 & 部署

軟件環境

Centos7.4Docker18.06Docker-MysqlDocker-NextCloud

Docker安裝

創建網橋

  • 使當前部署的服務在一個網絡平面內,相當於命名空間(白話:企業權限隔離)
docker network create nextCloud

設置docker mirros

  • 下載鏡像默認從國外服務下載,這里修改為從阿里雲下載,速度杠杠的native.cgroupdriver=systemd 入門可加可不加
  • 文件位置/etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
  • 重新配置,並重啟軟件
systemctl daemon-reload && systemctl restart docker

Docker-Mysql安裝

  • --name 名稱"nextCloud-mysql"
  • --network 使用上一步創建的網橋網絡 "nextCloud"
  • -p 3306:3306 宿主機和容器端口映射
  • -v 文件掛載,配置文件(conf),日志(logs),數據(data)
  • -e 環境變量設置
  • -d 使用的鏡像
docker run --name nextCloud-mysql \
--network nextCloud \
--network-alias nextCloud-mysql \
-p 3306:3306 \
-v /root/docker-home/nextCloud/mysql/conf:/etc/mysql \
-v /root/docker-home/nextCloud/mysql/logs:/var/log/mysql \
-v /root/docker-home/nextCloud/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=EZpZ2OBF3c02WMt0 \
-d mysql:5.7

設置Mysql允許遠程鏈接,並創建數據庫nextcloud

# 設置Mysql可以遠程鏈接
docker exec nextCloud-mysql /bin/bash -c 'mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "use mysql;grant all privileges  on *.* to root@\"%\" identified by \"$MYSQL_ROOT_PASSWORD\" with grant option;flush privileges" '

# 創建nextcloud數據庫
docker exec nextCloud-mysql /bin/bash -c 'mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "create database nextcloud default character set utf8mb4 collate utf8mb4_unicode_ci;" '

Docker-NextCloud安裝

  • --name 名稱"nextCloud-nextCloud"
  • --network 使用上一步創建的網橋網絡 "nextCloud"
  • -p 8081:80 容器內NextCloud服務端口80,映射到宿主機的8081端口,通過宿主機的IP和8081端口就可以訪問NextCloud
  • -v 文件掛載
  • -d 使用的鏡像
docker run --name nextCloud-nextCloud \
--network nextCloud \
-p 8081:80  \
-v /root/docker-home/nextCloud/data:/var/www/html/data \
-d nextcloud:latest

此時就可以通過宿主機的IP和端口8081,進行訪問了

  • 注意防火牆,虛擬機網絡設置。如遇問題自行百度解決

如果需要遠程訪問數據庫,可以通過以下方式

  • 本地軟件訪問,如,Navicat for MySQL
  • 數據庫管理系統,如,phpmyadmin

Docker-phpmyadmin安裝(選裝)

  • --name 名稱"phpmyadmin"
  • --network 使用上一步創建的網橋網絡 "nextCloud"
  • -p 8082:80 容器內phpmyadmin服務端口80,映射到宿主機的8082端口,通過宿主機的IP和8082端口就可以訪問phpmyadmin
  • -e 設置容器內環境變量,數據庫主機(PMA_HOST),數據庫端口(PMA_PORT)
  • -d 使用d額鏡像
docker run --name phpmyadmin \
--network nextCloud \
-e PMA_HOST=nextCloud-mysql \
-e PMA_PORT=3306 \
-p 8082:80 \
-d phpmyadmin

問題處理

在服務器上移動到文件夾的內容不顯示,需要掃描一下

docker exec --user www-data  nextCloud-nextCloud php occ files:scan admin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM