将Docker存储移至第二磁盘后overlay2配置失败及权限问题求助
问题排查与解决方案
一、Docker存储驱动与启动问题
清理残留配置与检查存储目录
- 编辑
/etc/docker/daemon.json,确保仅保留存储路径配置,移除storage-driver相关行(如果之前添加过):{ "data-root": "/mnt/second-disk/docker" } - 验证新存储目录权限:Docker自动创建的目录需为
root:root权限,权限值700,执行以下命令修复:sudo chown -R root:root /mnt/second-disk/docker sudo chmod -R 700 /mnt/second-disk/docker - 查看启动日志定位具体错误:
若日志出现SELinux相关报错,临时关闭测试:sudo journalctl -u docker.service -bsudo setenforce 0,长期解决可执行sudo setsebool -P docker_use_fusefs 1。
- 编辑
解决卷重复挂载问题
- 清理未使用的冗余卷:
sudo docker volume prune - 检查
docker-compose.yml中的卷定义,避免重复使用同一卷名或滥用匿名卷(无命名的- ./xxx:/path之外的卷)。
- 清理未使用的冗余卷:
二、WordPress与数据库连接/登录问题
1. MySQL root登录失败修复
- 确认
docker-compose.yml中数据库服务的环境变量配置完整:db: image: mysql:8.0 volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: your_secure_root_pass MYSQL_DATABASE: wordpress MYSQL_USER: wp_db_user MYSQL_PASSWORD: wp_db_pass command: --default-authentication-plugin=mysql_native_password # 适配MySQL 8.0的认证方式注:MySQL 8.0默认使用
caching_sha2_password认证,旧版客户端(部分WordPress镜像)不兼容,添加上述command可切换为兼容的mysql_native_password。 - 清理旧数据库卷数据(若迁移存储后残留旧数据导致冲突):
sudo docker volume rm <your-project-name>_db_data - 正确进入容器执行登录命令:
输入sudo docker exec -it <db-container-name> mysql -uroot -pdocker-compose.yml中设置的MYSQL_ROOT_PASSWORD,而非本地MySQL的密码。
2. WordPress数据库连接错误修复
- 确保WordPress服务的环境变量正确指向数据库服务:
wordpress: image: wordpress:latest volumes: - wp_data:/var/www/html environment: WORDPRESS_DB_HOST: db:3306 # 服务名作为hostname,docker-compose内部网络可直接访问 WORDPRESS_DB_USER: wp_db_user # 与db服务的MYSQL_USER一致 WORDPRESS_DB_PASSWORD: wp_db_pass # 与db服务的MYSQL_PASSWORD一致 WORDPRESS_DB_NAME: wordpress # 与db服务的MYSQL_DATABASE一致 depends_on: - db restart: always # 确保db启动后wp自动重启重试连接 - 验证容器间网络连通性:
若ping不通,检查docker-compose默认网络是否正常,可手动指定网络:sudo docker exec -it <wp-container-name> ping dbversion: '3.8' networks: wp-network: driver: bridge services: db: # ... 其他配置 networks: - wp-network wordpress: # ... 其他配置 networks: - wp-network
内容的提问来源于stack exchange,提问作者fudo
相关产品推荐
相关产品推荐

