美文网首页
二. 使用docker安装nextcloud,并连接mysql

二. 使用docker安装nextcloud,并连接mysql

作者: 落花生先生 | 来源:发表于2019-10-13 12:26 被阅读0次

1. 使用docker为nexcloud创建容器网络

docker network create nextcloud

2. 新建docker-compose.yml,并写入以下内容。在任意目录即可。

version: '2'  
services:  
  db:  
    container_name: cloud_db  
    image: mysql:5.7
    volumes:  
      - "./data/cloud/mysql:/var/lib/mysql"  
    restart: always  
    environment:  
      MYSQL_ROOT_PASSWORD: mysql_root_pwd  #mysql root用户密码,nextcloud后续初始化需要使用。
      MYSQL_DATABASE: nextcloud   #专为nextcloud新建的数据库,nextcloud后续初始化需要使用。
  app:  
    container_name: cloud_app
    depends_on:  
      - db
    image: nextcloud
    volumes:  
      - ./data/cloud/config:/var/www/html/config  
      - ./data/cloud/data:/var/www/html/data  
      - ./data/cloud/apps:/var/www/html/apps  
    links:  
      - db
    ports:  
      - "80:80"  # 前一个80是宿主机也就是阿里云主机对外的端口号,需注意阿里云主机安全组规则是否开放了这个端口。
    restart: always  
  cron:  
    container_name: cloud_cron  
    image: nextcloud  
    links:  
      - 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  
networks:  
  default:  
    external:  
      name: nextcloud

3. 保存docker-compose.yml,在同路径下启动docker-compose

docker-compose up -d

4. 如果期间出错,重新安装步骤

#由于执行docker-compose.yml已安装mysql和nextcloud镜像,先停止并删除相关容器
docker stop cloud_cron cloud_app cloud_db
docker rm cloud_cron cloud_app cloud_db

#进入挂载目录删除相关挂载文件 在同个路径
rm -rf data

#查看未被引用的容器卷
docker volume ls  --filter dangling=true

#删除nextcloud的容器卷容器卷(这边注意要删除nextcloud相关不要误删)
docker volume rm 容器卷id 
#或者直接
docker volume rm $(docker volume ls -qf dangling=true)

#重新启动容器
docker-compose up -d

5. 登录nextcloud并注册管理员帐号

浏览器打开http://阿里云主机的公网ip:80

image.png

相关文章

网友评论

      本文标题:二. 使用docker安装nextcloud,并连接mysql

      本文链接:https://www.haomeiwen.com/subject/phmhmctx.html