使用 Docker 搭建 Nextcloud

说明

本文内容参考 GitHub官方文档 和 Docker Hub。
在安装 nextcloud 时选用 MySQL 和 Redis 作为数据库,没有使用默认的数据库。

配置 Docker 仓库

配置国内仓库地址提高下砸镜像速度,修改配置文件/etc/docker/daemon.json,没有就新建,添加如下配置(我这里配置了多个地址):

{
       	"registry-mirrors": [
       	    "https://3laho3y3.mirror.aliyuncs.com",
       	    "https://registry.docker-cn.com",
       	    "https://mirror.ccs.tencentyun.com"
       	]
}

保存之后重启 docker

$ systemctl restart docker
安装 MySQL

拉取镜像

$ docker pull mysql

创建持久化数据目录,表示 mysql 运行数据放在这个目录下: /home/mysql/data

$ cd home
$ mkdir mysql
$ mkdir data

启动容器并指定持久化目录、指定root密码、端口映射

$ docker run --privileged=true --name mysql8 \
-v /home/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 -d mysql

测试连接通过即可

安装 Redis

同样拉取镜像,创建持久化数据目录:/home/redis/data
如果需要 redis 配置文件可以通过以下命令获取:

$ wget -P /usr/local/redis http://download.redis.io/redis-stable/redis.conf

启动容器指定配置文件启动、持久化目录、密码

$ docker run -d --privileged=true -p 6379:6379 \ 
-v /home/redis/redis.conf:/etc/redis/redis.conf \
-v /home/redis/data:/data --name redis \
redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 'redis6379'
安装 nextcloud
$ docker run -d -p 8088:80 \
--name nextcloud \
--restart=always \
-v /home/nextcloud/html:/var/www/html \
-v /home/nextcloud/apps:/var/www/html/custom_apps \
-v /home/nextcloud/config:/var/www/html/config \
-v /home/nextcloud/data:/var/www/html/data \
-v /home/nextcloud/theme:/var/www/html/themes \
--link mysql8:mysql \
--link redis:redis \
nextcloud

参数 -v {映射到本地磁盘的目录}:{运行时数据的目录},这样重启容器数据不会丢失
参数 --link 连接到刚才安装的容器,可以将 mysql8 和 redis 作为主机名

初始化配置

通过 docker 启动后,在浏览器输入 http://ip:8088/ 进入初始设置界面
1、设置管理员账号和密码
2、配置数据库,选择 MySQL/MariaDB,分别输入:

  • 用户名:我直接填的 root
  • 密码:root 账号的密码
  • 数据库名:nextcloud
  • 主机:mysql8,因为我在 docker 启动命令中指定了 --link mysql8:mysql
    3、点击完成即可
优化

在 config.php 配置文件中加入如下配置(对应安装时映射路径,文件在 /home/nextcloud/config 下)

  'memcache.local' => '\OC\Memcache\Redis',
  'memcache.distributed' => '\OC\Memcache\Redis',
  'memcache.locking' => '\OC\Memcache\Redis',
  'redis' => array(
    'host' => 'redis',
    'port' => 6379,
    'password' => 'redis6379'
  ),

以上内容加在最后一行 ); 内容之前。

另外

使用 docker-compose 会更简洁方便些,在 docker-compose.yml 同级目录下执行

docker-compose up -d

docker-compose.yml 文件内容如下:

version: '2'
services:
  db:
    container_name: mysql
    image: mysql
    volumes:
      - /home/mysql/data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: mysql数据库的密码
      MYSQL_DATABASE: nextcloud
    ports:
      - "6379:6379"
    restart: always
  redis:
    image: redis
    container_name: redis
    command: redis-server /etc/redis/redis.conf --appendonly yes --requirepass 'redis6379'
    ports:
      - "6379:6379"
    volumes:
      - /home/redis/data:/data
      - /home/redis/redis.conf:/etc/redis/redis.conf
    restart: always
  app:
    container_name: nextcloud_app
    depends_on:
      - redis
      - db
    image: nextcloud
    volumes:
      - /home/nextcloud/html:/var/www/html
      - /home/nextcloud/apps:/var/www/html/custom_apps
      - /home/nextcloud/config:/var/www/html/config
      - /home/nextcloud/data:/var/www/html/data
    links:
      - redis
      - db
    ports:
      - "8088:80"
    restart: always
  cron:
    container_name: nextcloud_cron
    image: nextcloud
    links:
      - redis
      - db
    volumes_from:
      - app
    user: www-data
    entrypoint: |
      bash -c 'bash -s <<EOF
      trap "break;exit" SIGHUP SIGINT SIGTERM
      while /bin/true; do
        /usr/local/bin/php /var/www/html/cron.php
        sleep 900
      done
      EOF'
    restart: always
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在树莓派上安装Docker。可以按照以下步骤进行安装: 1. 打开终端,更新软件包列表: ``` sudo apt update ``` 2. 安装Docker的依赖包: ``` sudo apt install -y apt-transport-https ca-certificates curl software-properties-common ``` 3. 添加Docker的官方GPG密钥: ``` curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` 4. 添加Docker的APT源: ``` echo "deb [arch=armhf signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/raspbian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` 5. 更新软件包列表并安装Docker引擎: ``` sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io ``` 6. 验证Docker是否成功安装: ``` sudo docker run hello-world ``` 接下来,你可以使用Docker来安装Nextcloud。可以按照以下步骤进行安装: 1. 创建一个目录来存储Nextcloud的数据: ``` sudo mkdir /opt/nextcloud_data ``` 2. 创建一个Docker网络以供使用: ``` sudo docker network create nextcloud_network ``` 3. 运行Nextcloud容器: ``` sudo docker run -d \ --name nextcloud \ -p 8080:80 \ -v /opt/nextcloud_data:/var/www/html \ --network nextcloud_network \ nextcloud ``` 这将在树莓派上启动一个Nextcloud容器,并将其绑定到本地的8080端口。你可以通过访问 http://树莓派的IP地址:8080 来访问Nextcloud

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值