使用 Docker Compose 部署 Nextcloud,并将配置和数据存储在 /disk2/nextcloud_data 目录中的完整详细步骤,一次性给出:
- 确保 /disk2/nextcloud_data 目录存在
首先,你需要确保 /disk2/nextcloud_data 目录存在,并且 Docker 进程有读写权限。如果不存在,请创建它:
sudo mkdir -p /disk2/nextcloud_data
sudo chown -R USER:USER /disk2/nextcloud_data # 将目录所有者改为当前用户
- 创建 docker-compose.yml 文件
在任意你喜欢的位置(例如 ~/nextcloud),创建一个名为 docker-compose.yml 的文件,并粘贴以下内容:
version: '3.7'
services:
db:
image: mariadb:10.6
restart: always
volumes:
- /disk2/nextcloud_data/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=your_mysql_root_password # 请替换为你的 MariaDB root 密码
- MYSQL_PASSWORD=your_nextcloud_db_password # 请替换为你的 Nextcloud 数据库密码
- MYSQL_DATABASE=nextcloud # Nextcloud 数据库名称
- MYSQL_USER=nextcloud # Nextcloud 数据库用户
app:
image: nextcloud:latest
restart: always
ports:
- 8080:80 # 将 Nextcloud 暴露在宿主机的 8080 端口
volumes:
- /disk2/nextcloud_data/nextcloud:/var/www/html
depends_on:
- db
environment:
- MYSQL_HOST=db # 使用 docker 内部的域名db指向数据库
- MYSQL_PASSWORD=your_nextcloud_db_password # 请替换为你的 Nextcloud 数据库密码
- MYSQL_DATABASE=nextcloud # Nextcloud 数据库名称
- MYSQL_USER=nextcloud # Nextcloud 数据库用户
- NEXTCLOUD_TRUSTED_DOMAINS=localhost,127.0.0.1 # 修改为你访问nextcloud的域名
- NEXTCLOUD_ADMIN_USER=admin # 默认管理账号admin
- NEXTCLOUD_ADMIN_PASSWORD=admin # 默认管理密码admin
networks:
default:
name: nextcloud_net
- 解释 docker-compose.yml 文件
version: '3.7': 指定 Docker Compose 文件版本。
services: 定义了 Nextcloud 部署所需要的两个服务:
db: MariaDB 数据库服务:
image: mariadb:10.6: 使用 MariaDB 10.6 镜像。
restart: always: 容器总是重启,除非手动停止。
volumes: 将主机上的 /disk2/nextcloud_data/db 目录挂载到容器的 /var/lib/mysql 目录,用于持久化存储数据库数据。
environment: 设置 MariaDB 的环境变量,包括 root 密码、Nextcloud 数据库密码、数据库名称和用户。请务必替换 your_mysql_root_password 和 your_nextcloud_db_password 为你自己的密码。
app: Nextcloud 应用服务:
image: nextcloud:latest: 使用最新版本的 Nextcloud 镜像。
restart: always: 容器总是重启,除非手动停止。
ports: 将主机的 8080 端口映射到容器的 80 端口,用于访问 Nextcloud。你可以修改为其他端口。
volumes: 将主机上的 /disk2/nextcloud_data/nextcloud 目录挂载到容器的 /var/www/html 目录,用于持久化存储 Nextcloud 应用数据和配置文件。
depends_on: 指定 app 服务依赖于 db 服务,确保数据库先启动。
environment: 设置 Nextcloud 的环境变量,包括数据库连接信息,管理员账号密码,信任域名。请务必替换 your_nextcloud_db_password 为你设置的密码。
networks: 定义一个名为 nextcloud_net 的docker网络。
- 启动 Nextcloud
在包含 docker-compose.yml 文件的目录下,执行以下命令启动 Nextcloud:
docker-compose up -d
这个命令会:
下载 MariaDB 和 Nextcloud 镜像(如果本地没有)。
创建并启动两个容器 (db 和 app)。
在后台运行容器。
- 访问 Nextcloud
等待一段时间,确保所有容器都成功启动后,在浏览器中访问:
http://localhost:8080
如果你的docker服务运行在远端服务器,将localhost替换为你的服务器IP或者域名
如果你修改了端口映射,需要用你映射的端口号访问,比如修改为 80:80,应该使用 http://localhost 访问
你应该能看到 Nextcloud 的登录界面。使用你在 docker-compose.yml 中设置的用户名和密码(默认是 admin/admin)登录。
- Nextcloud 初始化设置
首次登录时,Nextcloud 可能会提示你进行一些初始化设置,你可以根据你的需求进行设置。
- 数据存储位置
所有 Nextcloud 的数据都将存储在 /disk2/nextcloud_data 目录下:
/disk2/nextcloud_data/db: 存储 MariaDB 数据库数据。
/disk2/nextcloud_data/nextcloud: 存储 Nextcloud 的配置、用户数据和应用数据。
完整步骤总结
确保 /disk2/nextcloud_data 目录存在,且有读写权限。
创建 docker-compose.yml 文件,并替换密码等占位符。
执行 docker-compose up -d 启动 Nextcloud。
在浏览器中访问 http://localhost:8080 (或者你指定的地址)。
使用设置的用户名密码登录。
进行 Nextcloud 初始化设置。
所有数据将存储在 /disk2/nextcloud_data 目录中。
现在,你已经成功使用 Docker Compose 部署了 Nextcloud,并将数据存储在指定的磁盘位置。你可以开始使用 Nextcloud,并根据需要进行配置和扩展。