Docker部署nextcloud及其使用方法

这篇具有很好参考价值的文章主要介绍了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博客文章来源地址https://www.toymoban.com/news/detail-689993.html

到了这里,关于Docker部署nextcloud及其使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker pull、docker load、docker run使用方法

    docker pull是从网络上下载镜像。对于镜像来说,如果不显式地指定tag,则默认会选择latest标签,即下载仓库中最新版本的镜像。 这里以下载nvidiadocker为例: 执行上方命令就可以下载这个连接中的镜像了 下载后可以使用 命令查看本机所有镜像,上方下载的镜像也会显示出来。

    2023年04月13日
    浏览(34)
  • docker基本使用方法

    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减

    2024年02月13日
    浏览(48)
  • Docker Compose 使用方法

    目录 前言 安装 Docker Compose Ubuntu 安装与更新 Red Hat 安装与更新 验证是否安装 Docker Compose 创建 docker-compose.yml 文件 创建一个MySQL 与 tomcat 示例 使用Docker Compose启动服务 Docker Compose 是一个工具,旨在帮助定义和 共享多容器应用程序。使用 Compose,我们可以创建一个 YAML 文件来定

    2024年02月14日
    浏览(38)
  • Docker Dockerfile 使用方法

    目录 Dockerfile 介绍 构建mysql镜像 构建JDK镜像 当使用Docker构建容器化应用程序时,Dockerfile是一个用于定义容器镜像的文本文件。它包含了一系列指令,告诉Docker如何从基础镜像(通常是官方或自定义的操作系统镜像)构建出最终的镜像,以及如何配置容器中的环境、文件和应

    2024年02月13日
    浏览(40)
  • Kali中docker使用方法

    eg: 拉取CVE-2017-7504的漏洞环境为例子 Step 1: 查找并下载 Step 2: Step 3: 查看容器id 镜像名 以及容器与宿主机映射的端口号,容器名 Step 4: Step 5: 查看容器id 镜像名 以及容器与宿主机映射的端口号,容器名;列出正在运行的容器。 Step 6: 进入容器终端 这里就成功进入docker环境了

    2024年02月13日
    浏览(43)
  • docker 本地保存镜像方法--docker export 和docker save 使用介绍

    在很多环境中,由于网络问题,无法docker pull 镜像,就需要tar包方式获取镜像,以下就制作tar包的方式和区别加以介绍: 如果要定义tag,如下操作 三、异常情况 3.1、docker import docker save的包 3.2、docker load docker export 的包 1、https://blog.csdn.net/Wqr_18390921824/article/details/123083151 2、

    2024年02月08日
    浏览(47)
  • 常用的Docker命令和使用方法

    目录 拉取(Pull)镜像 查看已下载的镜像 创建运行容器 列出正在运行的容器 停止和启动容器 进入容器 查看容器信息 查看容器日志 删除容器和镜像 重命名容器 帮助信息 拉取(Pull)镜像 当我们在Docker中部署一个应用程序时,需要使用一个称为\\\"镜像\\\"的模板来创建容器。镜

    2024年02月16日
    浏览(53)
  • Docker容器中使用systemctl 的方法

    默认情况下 容器内不应该运行守护进程,若想使用则需要一些操作,详情如下: run 启动参数上,加上  --privileged=true ,然后,参数末尾 将 /bin/bash 替换为  /sbin/init (这是重点,由他启动一系列系统守护进程) 例如: 如果是通过 Dockerfile 构建的镜像,上述参数末尾的 /sbin/in

    2024年02月11日
    浏览(39)
  • Docker在Windows系统中的安装方法和使用方法

    Docker是一种容器化技术,可以让开发者将应用程序和其依赖项打包成一个可移植的容器,从而实现快速部署和运行。在Windows系统中,Docker可以通过以下步骤进行安装和使用。 Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,

    2024年02月07日
    浏览(42)
  • 【Docker】升级docker或者docker到docker-ce完全保留镜像和容器,不影响原容器使用方法

    以下是我的使用场景,docker升级到docker-ce,但对于docker-ce升级也通用!亲测! CentOS自带的docker是早期的版本,支持的功能比较少,而且已经没有人维护了。最新的版本存在于docker团队维护的版本,社区版本是docker-ce,企业版本是docker-ee。 由于默认CentOS自带的是早期的版本的

    2024年01月16日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包