如何删除与 NextCloud Docker 容器关联的所有内容,以便我可以重新安装新的?

How to remove everything associated with NextCloud Docker Containers so that I can re-install fresh?

我希望删除与 NextCloud 关联的所有内容,以便我可以进行全新安装,而不是继续获取​​旧实例。

我通过 docker 组合文件(见下文)安装了 NextCloud(以及 nginx、letsencrypt 和 maria)。当我第一次登录时,我 运行 遇到了 MariaDB 的问题,无法完成初始登录。

虽然我正在排除故障,但我尝试使用 SQLite 进行初始登录并且成功了,但我不想 运行 在生产环境中使用 SQLite。我最终找到了一个包含在 MariaDB 定义中的命令,然后进行了全新安装。

我尝试了 docker-compose down,然后 docker compose up -d,但这让我回到了使用 SQLite 的实例。

我停止了所有 NextCloud 容器和 运行 docker system prune --volumes -a,然后是 docker-compose up -d。这重新下载并提取了所有 docker 图像。当我回到 NextCloud URL 时,它仍然将我指向 SQLite 实例,而不是我正在寻找的全新安装。

我还可以尝试哪些其他方法来进行全新安装?

version: '3' 

services:

  proxy:
    image: jwilder/nginx-proxy:alpine
    labels:
      - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true"
    container_name: nextcloud-proxy
    networks:
      - nextcloud_network
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./proxy/conf.d:/etc/nginx/conf.d:rw
      - ./proxy/vhost.d:/etc/nginx/vhost.d:rw
      - ./proxy/html:/usr/share/nginx/html:rw
      - ./proxy/certs:/etc/nginx/certs:ro
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
    restart: unless-stopped
  
  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: nextcloud-letsencrypt
    depends_on:
      - proxy
    networks:
      - nextcloud_network
    volumes:
      - ./proxy/certs:/etc/nginx/certs:rw
      - ./proxy/vhost.d:/etc/nginx/vhost.d:rw
      - ./proxy/html:/usr/share/nginx/html:rw
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: unless-stopped

  db:
    image: mariadb
    container_name: nextcloud-mariadb
    networks:
      - nextcloud_network
    volumes:
      - db:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro
    environment:
      - MYSQL_ROOT_PASSWORD=toor
      - MYSQL_PASSWORD=mysql
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    restart: unless-stopped
    command: ['--innodb_read_only_compressed=OFF'] 
  
  app:
    image: nextcloud:latest
    container_name: nextcloud-app
    networks:
      - nextcloud_network
    depends_on:
      - letsencrypt
      - proxy
      - db
    volumes:
      - nextcloud:/var/www/html
      - ./app/config:/var/www/html/config
      - ./app/custom_apps:/var/www/html/custom_apps
      - ./app/data:/var/www/html/data
      - ./app/themes:/var/www/html/themes
      - /etc/localtime:/etc/localtime:ro
    environment:
      - VIRTUAL_HOST=your-subdomain.duckdns.org
      - LETSENCRYPT_HOST=your-subdomain.duckdns.org
      - LETSENCRYPT_EMAIL=you@youremail.com
    restart: unless-stopped

volumes:
  nextcloud:
  db:

networks:
  nextcloud_network:

您的某些容器上似乎有“绑定卷”。 特别是在你的 nextcloud-app 实例上。

此命令不会删除绑定卷。仅托管卷。

docker system prune --volumes -a

next cloud可能已经在./app文件夹中持久化了一些配置数据

因此,如果您想完全重置它,您需要停止所有容器,手动删除此文件夹。删除托管卷。 并重新启动它