使用docker-compose安装nextcloud 以及nginx代理转发
1. 在服务器中安装 docker docker-compose shell脚本 (Ubuntu)
docker_install.sh
#!/bin/bash
# 更新软件包索引
sudo apt-get update
# 安装必要的软件包以允许apt通过HTTPS使用仓库
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
# 添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置稳定版Docker仓库
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
# 安装Docker CE
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# 验证Docker是否正确安装
sudo docker run hello-world
# 可选:将当前用户添加到docker组,以便无需sudo即可运行Docker命令
sudo usermod -aG docker ${USER}
# 提示重启计算机
echo "安装完成,请重启您的计算机以应用更改。"
2. 采用本地拉取镜像上传到服务器的形式 更新服务器镜像
docker镜像打包本地文件 和 本地文件 转为镜像-CSDN博客s
使用这个方法将 nextcloud_latest.tar mariadb_image.tar redis_image.tar 都传入到服务器中
3.使用docker compose 搭建nextcloud
docker-compose.yml 修改你自己的密码 使用 docker compose up -d 运行
version: '3.7'
services:
db:
image: mariadb:latest
container_name: nextcloud_db
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: 779604436
MYSQL_DATABASE: nextcloud
MYSQL_USER: applestven
MYSQL_PASSWORD: 123456
ports:
- 3306:3306
redis:
image: redis:latest
container_name: nextcloud_redis
restart: always
volumes:
- redis_data:/data
app:
image: nextcloud:latest
container_name: nextcloud_app
restart: always
ports:
- 8800:80
volumes:
- nextcloud_data:/var/www/html
- /home/apple/ftp:/var/www/html/ftp
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: applestven
MYSQL_PASSWORD: 123456
REDIS_HOST: redis
depends_on:
- db
- redis
volumes:
db_data:
redis_data:
nextcloud_data:
# 启动 docker compose up -d
# 停止 docker-compose down
# 运行完成 http://<你的服务器IP>:8800
3.1 nextcloud 使用外部盘 或者 挂载本地卷 本地存储
新装的nextcloud 需要在设置中添加 “外部存储支持”
3.2 nextcloud添加容器外部卷
在docker compose中 可以看到 有一个本地挂载地址 在容器内的地址为 /var/www/html/ftp 可以自行添加
(如果nextcloud不是容器安装 直接填就完了 这需要docker基础知识理解)
volumes:
- nextcloud_data:/var/www/html
- /home/apple/ftp:/var/www/html/ftp