当前位置: 首页 > news >正文

在docker里面安装nextcloud

好 👍 我给你一个从 零开始安装 Docker → 安装 Nextcloud 的完整流程。

下面以 Ubuntu 20.04/22.04/24.04 为例(如果你是 CentOS / Debian 也可以告诉我,我帮你改命令)。

🐳 第一步:安装 Docker

1. 更新软件源

sudo apt update
sudo apt upgrade -y

2. 安装依赖

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

3. 添加 Docker 官方 GPG key

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

4. 添加 Docker 软件源

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

5. 安装 Docker Engine 和 Compose

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

6. 验证安装

docker --version
docker compose version

👉 如果一切正常,你应该能看到 Docker version … 和 Docker Compose version … 输出。

📦 第二步:安装 Nextcloud(推荐 docker-compose)
1. 创建目录:

mkdir ~/nextcloud-docker && cd ~/nextcloud-docker

2.	写入 docker-compose.yml:

version: ‘3.7’

services:
db:
image: mariadb:10.11
container_name: nextcloud_db
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=your_root_password
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=your_db_password

app:
image: nextcloud
container_name: nextcloud
restart: always
ports:
- 8080:80
links:
- db
volumes:
- ./nextcloud:/var/www/html

volumes:
db:
nextcloud:

3.	启动服务:

docker compose up -d

4.	访问:

http://服务器IP:8080

•	数据库名:nextcloud
•	用户名:nextcloud
•	密码:your_db_password
•	数据库主机:db

⚡ 第三步(可选优化)
• 绑定域名 + HTTPS:配合 Nginx Proxy Manager 或 Traefik。
• 开启 Redis 缓存:提升性能。
• 外部存储:挂载 NAS 或其他磁盘到 nextcloud 数据目录。

要不要我给你整理一个 带域名 + 自动 HTTPS 证书(Let’s Encrypt)的 Nextcloud docker-compose 版本?这样你装好就能直接用 https://你的域名 访问。

你这个报错我看出来了:

Error response from daemon: Get “https://registry-1.docker.io/v2/”: context deadline exceeded

👉 意思是 Docker 在拉取镜像时访问不到 Docker Hub(registry-1.docker.io),不是你的 docker-compose.yml 配置问题,而是 网络超时。

🔍 常见原因
1. 国内网络拉取 Docker Hub 太慢 → 超时。
2. 公司/学校/运营商有代理限制。
3. 本机没有配置 Docker 镜像加速器。

✅ 解决办法

  1. 配置 Docker Hub 国内镜像加速器

创建或修改 /etc/docker/daemon.json:

sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

写入:

{
“registry-mirrors”: [
“https://docker.m.daocloud.io”,
“https://dockerproxy.cn”,
“https://hub.uuuadc.top”,
“https://docker.1panel.live”
]
}

保存后重启 Docker:

sudo systemctl daemon-reexec
sudo systemctl restart docker

验证是否生效:

docker info | grep -A 3 “Registry Mirrors”

  1. 重新拉取镜像

cd ~/nextcloud-docker
sudo docker compose pull
sudo docker compose up -d

  1. 手动拉取(如果还是失败)

docker pull mariadb:10.11
docker pull nextcloud

成功后再执行:

sudo docker compose up -d

⚠️ 另外提示:
你看到的

the attribute version is obsolete

是 Docker 新版提示:version: 字段已经废弃了,不影响使用。你可以直接删掉 docker-compose.yml 里面的

version: ‘3.7’

要不要我帮你改写一个 最新语法的 docker-compose.yml(去掉 version 字段,兼容 Docker Compose V2)?

为什么要兼容Docker Compose V2

这个问题问得非常关键 👍

先解释下背景:

🔹 Docker Compose V1 vs V2
• V1:
• 独立的 Python 程序(docker-compose)。
• 需要单独安装。
• 配置文件要求 version: 字段,比如 version: ‘3.7’。
• V2:
• 已经整合进 Docker CLI(docker compose,注意空格)。
• 用 Go 语言重写,更快、更稳定。
• 官方已宣布 V1 停止维护,未来只更新 V2。
• 配置文件里 不再需要 version: 字段。

🔹 为什么要兼容 V2?
1. 未来趋势:
V1 已经不维护,Docker Desktop / Linux 包管理器都默认装 V2。
如果配置文件写了 version:,会出现你刚才的警告:

the attribute version is obsolete, it will be ignored

2.	减少混淆:

V2 会自动解析 services:、volumes:、networks:,
version: 写了也不会生效,容易让人以为必须指定版本。
3. 统一命令:
• 旧:docker-compose up -d
• 新:docker compose up -d
(你现在用的就是 V2)
4. 兼容性更好:
新的语法更接近 Kubernetes YAML(比如 deploy: 字段),未来迁移更方便。

🔹 实际影响

你现在用的 Docker 已经是 Compose V2,所以:
• version: 字段可删掉,不影响运行。
• 现有 docker-compose.yml 文件几乎不用改,只有一些极老的语法才不兼容。

👉 简单总结:
兼容 Docker Compose V2 是为了跟上官方维护,避免警告,配置文件更简洁,未来更好迁移。

要不要我帮你直接把你现有的 docker-compose.yml 改写成 适配 Compose V2 的最新写法?

好的 👍 我帮你把之前的 docker-compose.yml 改成 最新 Docker Compose V2 语法。

✅ Nextcloud + MariaDB (Docker Compose V2 版本)

保存为 docker-compose.yml:

services:
db:
image: mariadb:10.11
container_name: nextcloud_db
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- ./db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: your_db_password

app:
image: nextcloud
container_name: nextcloud
restart: always
ports:
- “8080:80”
depends_on:
- db
volumes:
- ./nextcloud:/var/www/html

volumes:
db:
nextcloud:

🔹 主要变化
1. 去掉了 version: 字段(V2 自动识别)。
2. 用 depends_on: 替代 links:(新写法,更直观)。
3. environment 部分改为 键值对格式,比 - VAR=value 更清晰。
4. 保留了 volumes 定义,避免警告,也方便未来扩展。

🔹 启动命令

docker compose pull
docker compose up -d

访问 http://服务器IP:8080 即可进入安装向导。
• 数据库名:nextcloud
• 用户名:nextcloud
• 密码:your_db_password
• 数据库主机:db

要不要我再帮你扩展一个 带 Redis 缓存 + 自动 HTTPS (Let’s Encrypt via Nginx Proxy Manager) 的完整 docker-compose.yml?这样性能更好,还能直接用域名访问。

http://www.dtcms.com/a/414890.html

相关文章:

  • 3.6、操作系统
  • 2025最新centos7安装mysql8 相关 服务器配置 纯命令行操作 保姆级教程
  • Hadess入门到实战(4) - 如何管理Docker制品
  • Python 数学公式构建海洋不明生物(好像是水母)动画 - 傅里叶合成模拟复杂波形
  • 泰州建设企业网站福州企业免费建站
  • 美妆网站模板html5网站开发语言
  • 深度剖析OpenHarmony AI Engine:开发板端侧大模型推理插件机制全链路拆解
  • 链表的核心思想
  • Matlab通过GUI实现点云的坡度滤波(附最简版)
  • GESP8级——AT_icpc2013spring_e 最小生成树题解
  • Qt窗口与对话框开发指南
  • 湖北平台网站建设哪家好有经验的邵阳网站建设
  • 33.Linux iCSCI 服务
  • 国内优秀网页设计网站网站建设流程共有几个阶段
  • 基于物联网的个人健康管理系统(论文+源码)
  • 一个网站可以做几个关键词网站建设济南
  • Linux日志分析入门:使用grep和awk发现服务器异常访问
  • 435. 无重叠区间
  • 2025制造业研发流程提效指南:从审批卡顿到协同闭环,3类系统选型全解析
  • 文件夹随机分配 把文件夹随机分配到指定的文件夹中
  • 104.二叉树的最大深度(二叉树算法题)
  • 宿迁做网站的怎样制作h5
  • 电子商务网站建设结业论文seo教程seo官网优化详细方法
  • 使用 Three.js 和本地 Draco Loader 高效加载压缩 GLB 模型
  • Nginx-Proxy-Manager配置SSL泛域名证书教程
  • 图的遍历:从深度优先到广度优先
  • Java数据结构:ArrayList与顺序表1
  • C语言实战项目:贪吃蛇(1)
  • 鸿蒙应用开发之ArkTs集成AI大模型与Markdown流式渲染教程(API 20)
  • 网站建设服务器环境配置关于网站开发的网店计划书范文