首页 > 其他分享 >Docker部署nextcloud及其使用方法

Docker部署nextcloud及其使用方法

时间:2023-07-15 17:33:34浏览次数:50  
标签:容器 compose 部署 Docker com docker nextcloud

Docker部署Nextcloud及其使用方法

Docker安装

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker的应用场景

  • Web 应用的自动化打包和发布。
  • 自动化测试和持续集成、发布。
  • 在服务型环境中部署和调整数据库或其他的后台应用。
  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

Docker 的优点

Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

1、快速,一致地交付您的应用程序

Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。

容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:

  • 您的开发人员在本地编写代码,并使用 Docker 容器与同事共享他们的工作。
  • 他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。
  • 当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。
  • 测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。

2、响应式部署和扩展

Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。

Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。

3、在同一硬件上运行更多工作负载

Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。

--from Docker 教程 | 菜鸟教程 (runoob.com)

Ubuntu环境下安装Docker

sudo apt-get update

sudo apt-get install ca-certificates curl gnupg lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

启动Docker

sudo systemctl enable docker.service
sudo systemctl start docker

验证Docker安装成功

docker version
#有信息输出

Docker-compose

Compose 简介

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

如果你还不了解 YML 文件配置,可以先阅读 YAML 入门教程

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。
wget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -O /usr/local/bin/docker-compose

如果这一步失败,请直接到GitHub在本地下载docker-compose可执行文件

上传至服务器的/usr/local/bin/文件夹,并将文件改名为docker-compose

添加运行权限

chmod +x /usr/local/bin/docker-compose

验证docker-compose命令

docker-compose -v

Nextcloud的docker-compose部署方法

创建用于保存nextcloud配置和文件的目录

mkdir -p /nextcloud/nginx # 存放nginx配置
mkdir -p /nextcloud/db # 存放数据库文件
mkdir -p /nextcloud/app # 存放nextcloud程序包,以后出现问题了可以修改里面的php配置文件

切换到/nextcloud/文件夹下

cd /nextcloud/

创建docker-compose.yaml

nano docker-compose.yaml

输入以下内容

version: '2'

#volumes:
  #nextcloud:
  #db:

services:
  db:
    image: mariadb:10.5
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    networks:
      - nextcloud_netbridge
    volumes:
      - /nextcloud/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_PASSWORD=nextcloud
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    restart: always
    ports:
      - 11000:80
    networks:
      - nextcloud_netbridge
    links:
      - db
    volumes:
      - /nextcloud/app:/var/www/html
    environment:
      - MYSQL_PASSWORD=nextcloud
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

networks:
  nextcloud_netbridge:
    driver: bridge
    

如果想把端口映射改为80,可以将上面的

ports:
- 11000:80

改为

ports:
- 80:80

最后启动集成配置

docker-compose -f /nextcloud/compose.yaml up -d

通过http://ip:11000

http://localhost:11000即可访问nextcloud

进入之后创建管理员账号,设置密码

修改Trusted domains(选做)

Nextcloud是很注重安全性的开源网盘项目。它阻止除白名单外的一切访问方式

官方文档是:
Trusted domains
All URLs used to access your Nextcloud server must be whitelisted in your config.php file, under the trusted_domains setting. Users are allowed to log into Nextcloud only when they point their browsers to a URL that is listed in the trusted_domains setting. You may use IP addresses and domain names. A typical configuration looks like this:
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'server1.example.com',
2 => '192.168.1.50',
3 => '[fe80::1:50]',
),

查看docker容器

docker ps -a

输出类似:

CONTAINER ID   IMAGE          COMMAND                  CREATED        STATUS          PORTS                                     NAMES
f392845aba1e   nextcloud      "/entrypoint.sh apac…"   18 hours ago   Up 20 minutes   0.0.0.0:11000->80/tcp, :::11000->80/tcp   nextcloud-app-1
2c614b0dca75   mariadb:10.5   "docker-entrypoint.s…"   18 hours ago   Up 18 hours     3306/tcp                                  nextcloud-db-1

找到nextcloud的ID

进入容器

docker exex -it <CONTAINER ID> /bin/bash

如
docker exec -it f392845aba1e /bin/bash

安装nano编辑器

apt update
apt install nano

进入config文件夹

cd config

修改config.php

nano config.php

找到trusted_domains写入你要添加的域名

像这样:

'trusted_domains' =>
array (
0 => 'localhost',
1 => 'server1.example.com',
2 => '192.168.1.50',
3 => '[fe80::1:50]',
),

Ctrl + o保存,回车确定,Ctrl+x退出

最后退出容器

exit

重启容器,使配置生效

docker restart <CONTAINER ID>

如:
docker restart f392845aba1e

使用命令行上传

方法一

curl -u USER:PASSWORD -T PUSHFILEPATH  "NEXTCLOUDwebDEV"

USER
你的登录nextcloud的账号

PASSWORD
你的登录nextcloud的密码

PUSHFILEPATH
你要上传文件的路径

NEXTCLOUDwebDEV是一个URL
获取地址 web登录NEXTCLOUD 点击上边文件 然后点击左下角设置 会出现一个webDEV的,下边方框里的URL就是了

这是一个家目录,如果想上传到家目录下某个目录下,可以直接在URL后跟路径就行

方法二

写一个脚本push_nextcloud.sh(命名随意)

#!/bin/bash
USER=""
PASSWD=""
WEBDEV=""

curl -u $USER:$PASSWD -T $1  "$WEBDEV$2"

上传命令

bash push_nextcloud.sh pushfile path

使用命令行下载

首先在nextcloud里面把要下载的文件共享出来,得到共享链接

得到的链接一般是这样的:

http://example.com/s/5Q8A4zjJG4qgLFw

在末尾添加/download/文件名:

http://example.com/s/5Q8A4zjJG4qgLFw/download/Birdie.jpg

使用wget

wget http://example.com/s/5Q8A4zjJG4qgLFw/download/Birdie.jpg

使用curl

curl -O -L http://example.com/s/5Q8A4zjJG4qgLFw/download/Birdie.jpg

TBD:服务器部署+绑定二级域名

TODO

参考资料

参考来源:

使用docker-compose安装Nextcloud_docker-compose nextcloud_上海一亩地的博客-CSDN博客

nextcloud:linux命令行上传文件_nextcloud上传文件夹_糖℃ᶫᵒᵛᵉᵧₒᵤ的博客-CSDN博客

标签:容器,compose,部署,Docker,com,docker,nextcloud
From: https://www.cnblogs.com/codealan/p/17556552.html

相关文章

  • Docker迁移到指定目录
    目录Docker迁移到指定目录Docker迁移到指定目录要将docker迁移到另一个目录,需要执行以下步骤:停止docker服务sudosystemctlstopdocker备份原来的docker数据目录将原来的docker数据目录(默认为/var/lib/docker)备份到新的目录。这里假设我们将docker迁移到/......
  • openEuler(华为欧拉)使用docker安装wine 8+版本,支持32位程序
    安装docker参考:openEuler安装docker下载wine镜像wine的docker镜像,支持i386点击上述网址,查看、选择你想要安装的版本,例如8.0.1.使用以下命令安装:dockerpulltianon/wine:8.0.1启动wine容器下载完成后,使用以下命令启动:dockerrun-it-eDISPLAY=$DISPLAY-v$(pwd):/mnt......
  • ansible自动化部署
    1.ansible简介  自动化运维工具,依赖操作系统现有的凭证(公钥)访问远程机器,  批量化服务器管理(配置操作系统、开发软件、编排高级IT任务)  ansible实现批量化管理原理:  管理服务器安装ansible和生成公钥拷贝到受管服务器--> /etc/ansible/hosts配置用户组,添加受管......
  • nginx部署静态网页
    一、下载运行进入nginx官网下载页面:nginx下载地址,下载稳定版本 运行方式一:nginx下载目录双击允许nginx.exe运行方式二:nginx命令行启动,在下载目录地址栏输入cmd,输入startnginx任务管理器出现nginx.exe表示启动成功二、常用命令nginx-ssignal当信号可以是下列之一:......
  • 【转】Docker入门笔记04:三大核心概念
    原文:https://zhuanlan.zhihu.com/p/312142777Docker的三大核心概念镜像Image容器Container仓库RepositoryDocker大部分的操作都围绕它的三大核心概念一、Docker镜像Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的用于创建容器的模板。例如,一个镜像可以包含一个基......
  • 使用docker部署chatgpt-on-wechat
    目标:能够调用chatgpt接口并回复微信proxy部署(海外服务器不需要此选项)下载、配置proxymkdir-p/data/clashcd/data/clashwgethttps://github.com/Dreamacro/clash/releases/download/v1.17.0/clash-linux-amd64-v1.17.0.gzgzip-dclash-linux-amd64-v1.17.0.gzchmoda+......
  • 【转】Docker入门笔记01:Docker容器技术的发展历程
    原文:https://zhuanlan.zhihu.com/p/304623118最近因为工作需要,要学习一些基本的Docker知识,所以整理了一些docker的入门知识,感兴趣的小白可以看看,一起学习进步。要学习一个新的东西,我的习惯一般是先了解它是什么,它是怎么来的,发展历史是怎样的,用来解决什么问题,有什么优缺点。所以......
  • 【转】Docker入门笔记02:docker的版本,你真的搞清楚了吗
    原文:https://zhuanlan.zhihu.com/p/305572519刚开始学docker的时候,被docker.io、docker-io、docker-engine、docker-ce、docker-ee这些名词搞晕了,那么到底应该安装哪个呢?docker之所以有这么多名称,是由它的发展历史决定的。为什么会有docker.io、docker-io这种命名方式在Dock......
  • openEuler22.03安装docker24.0.4
    安装Docker添加docker源阿里云源,需要注意的是,你可能需要手动修改Docker-Ce.Repo里的源地址,将其$Release修改为指定的Centos版本号,本文指定的centos版本号为8。#添加源,添加后,手动编辑/etc/yum.repos.d/docker-ce.repo里的$Release版本号才能对应到正确的下载连接dnfconfig-......
  • docker安装nginx
    1.docker下Nginx安装:(web站点配置)  dockerpullnginx--拉取nginx镜像  dockerrun--namenginx-test1-p8081:80-dnginx  dockerps  mkdir-p./nginx/www./nginx/logs./nginx/conf--/root下创建这几个路径  dockercp13afb35cbc98:/e......