常用操作
更新镜像后出现错误的解决办法
sudo docker exec -it --user www-data nextcloud php occ upgrade
文件操作
# Rescan the AppData folder
sudo docker exec -it --user www-data nextcloud /var/www/html/occ files:scan-app-data
# Rescan all files
sudo docker exec -it --user www-data nextcloud /var/www/html/occ files:scan --all
# Cleanup filecache
sudo docker exec -it --user www-data nextcloud /var/www/html/occ files:cleanup
# Try and repair malformed filesystem tree structures
sudo docker exec -it --user www-data nextcloud /var/www/html/occ files:repair-tree
打开或关闭维护模式
sudo docker exec -it --user www-data nextcloud /var/www/html/occ maintenance:repair
sudo docker exec -it --user www-data nextcloud /var/www/html/occ maintenance:mode --on
sudo docker exec -it --user www-data nextcloud /var/www/html/occ maintenance:mode --off
进入Nextcloud容器的shell
sudo docker exec -it -u www-data nextcloud sh
Docker Compose 文件
services:
nextcloud_db:
image: mariadb
container_name: nextcloud_db
network_mode: host
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW # --innodb-read-only-compressed=OFF
environment:
- TZ=Asia/ShangHai
- MYSQL_ROOT_PASSWORD=<passwd>
- MYSQL_PASSWORD=<passwd>
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
volumes:
- /mnt/appdata/nextcloud/db:/var/lib/mysql
restart: unless-stopped
nextcloud:
container_name: nextcloud
image: nextcloud
network_mode: host
environment:
- TZ=Asia/ShangHai
- MYSQL_PASSWORD=<passwd>
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=127.0.0.1:3306
- PHP_MEMORY_LIMIT=8G
- PHP_UPLOAD_LIMIT=8G
depends_on:
- nextcloud_db
volumes:
- /mnt/appdata/nextcloud/html:/var/www/html
- /mnt/storage/nextcloud_data:/var/www/html/data
- /mnt/appdata/nextcloud/etc/apache2/ports.conf:/etc/apache2/ports.conf
- /mnt/appdata/nextcloud/etc/apache2/sites-enabled:/etc/apache2/sites-enabled
- /mnt/appdata/nextcloud/etc/apache2/sites-available:/etc/apache2/sites-available
restart: unless-stopped
注释:在首次启动时不要挂载以下目录,而是从容器中复制到主机上,这样您就可以在容器内为Nextcloud的apache2服务器做一些自定义配置,例如设置容器内部使用的自定义端口。
- /mnt/appdata/nextcloud/etc/apache2/ports.conf:/etc/apache2/ports.conf
- /mnt/appdata/nextcloud/etc/apache2/sites-enabled:/etc/apache2/sites-enabled
- /mnt/appdata/nextcloud/etc/apache2/sites-available:/etc/apache2/sites-available
sudo docker cp container_name:src_path host_dest_path
更改Nextcloud容器内的端口而不用端口映射
桥接模式下compose文件中加入端口映射是最通常的方式,这里是host模式的更改端口方法
更改/mnt/appdata/nextcloud/etc/apache2/ports.conf:/etc/apache2/ports.conf中的监听端口为您想要的端口。例如:
Listen 9088
<IfModule ssl_module>
Listen 20443
</IfModule>
<IfModule mod_gnutls.c>
Listen 20443
</IfModule>
更改虚拟主机端口为000-default.conf 和 default-ssl.conf中您想要的端口。
- /mnt/appdata/nextcloud/etc/apache2/sites-available:/etc/apache2/sites-available
- /mnt/appdata/nextcloud/etc/apache2/sites-enabled:/etc/apache2/sites-enabled