Docker搭建nextcloud

安装 Docker 环境

  • 添加镜像源
    这里选择的是国内上海大学开源镜像站提供的 docker-ce源,多快好省。
    sudo tee -a /etc/apt/sources.list.d/docker.list << EOF
    deb [arch=amd64] https://mirrors.shu.edu.cn/docker-ce/linux/ubuntu/ xenial stable
    

    EOF

    • 添加镜像源
    • 添加可信任的 GPG 公钥
      sudo apt-key adv --keyserver=hkp://keyserver.ubuntu.com 
    更新本地软件缓存列表
    sudo apt update
    安装 Docker-CE 及其依赖
    sudo apt install -y docker-ce
    将普通用户添加到 docker 组,这样普通用户也能使用 docker 命令。
    sudo usermod -aG docker $(whoami)
    执行完成后请退出终端并重连使配置生效。
    添加网易云 Docker 镜像加速器
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh
    重启 Docker 服务
    sudo service docker restart
    检查 Docker 是否安装成功
    sudo docker info

    docker-compose 是一个由 Docker 官方提供的管理工具,适合一个应用需要多个容器配合统一管理,进一步简化应用部署、应用升级步骤。

    • 安装基础组件
      sudo apt install -y python3 python3-pip
      sudo pip3 install -U pip
    安装 docker-compose
    sudo pip3 install docker-compose

    安装 Nextcloud

    • 编写 docker-compose.yml 文件
      docker-compose 的管理主要依赖于一个名为 docker-compose.yml 的 yaml 文件来进行管理,当然这个文件也可以以任何别的名称并以 -f 文件名 的方式来启用,但必须是符合 yaml 格式和 Docker 官方定义的字段和方式。
      以下为本实验所需的内容,其中用到了 mariadb 官方提供的数据库容器 和 Nextcloud 官方提供的应用容器。
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
       volumes:
            - /home/ubuntu/nextcloud/www:/var/www/html  
      db:
          imagemariadb
          restartalways
          volumes:
            - 
      /home/ubuntu/nextcloud/db:/var/lib/mysql
          environment:
            - MYSQL_ROOT_PASSWORD=root
            - MYSQL_PASSWORD=nextcloud
            - MYSQL_DATABASE=nextcloud
            - MYSQL_USER=nextcloud
       
        app:  
          imagenextcloud
          restartalways
          ports:
            - 80:80
          links:
            - db     volumes:
            - /home/ubuntu/nextcloud/www:/var/www/html
    启动容器
    以下命令即可开始拉取所需容器的镜像文件并根据 docker-compose.yml 文件配置好本地文件夹挂载和端口映射。(本步骤由于需要拉取镜像,所以需要 3 ~ 5 分钟时间。)
    sudo docker-compose up -d
    应用初始化配置
    访问 http://119.29.16.152 设置管理员用户名和密码(比如 admin 和 [email protected] ),数据目录默认即可,数据库信息填写如 docker-composer.yml 中所示,数据库主机名填 db (配置文件中的数据库应用名)。
  • Docker搭建nextcloud
  • 所有初始化配置填写完毕之后,等待大约半分钟左右安装完成就可以看见 Nextcloud 的主目录页面。

  • Docker搭建nextcloud

更新应用至最新版
sudo docker pull nextcloud
sudo docker-compose down && sudo docker-compose up -d
你将会发现虽然销毁了原来的容器并且新建了容器,但是并不需要重新初始化应用的配置,这也正是 Docker 管理应用的方便之处。