安装Docker后v.je无法访问及MariaDB连接问题求助
问题排查与解决方案
一、v.je域名无法访问问题
1. 配置本地DNS解析
Windows系统下需手动将v.je指向本地回环地址,修改C:\Windows\System32\drivers\etc\hosts文件(需管理员权限),添加以下两行:
127.0.0.1 v.je ::1 v.je
保存后刷新DNS缓存:ipconfig /flushdns
2. 检查Nginx容器配置
- 确认
docker-compose.yml中nginx服务是否挂载了正确的站点配置文件,以及本地v.je文件所在目录是否被映射到容器内对应路径。 - 进入nginx容器查看站点配置:
确保配置中包含正确的server块:docker exec -it <你的nginx容器名称/ID> cat /etc/nginx/conf.d/v.je.confserver { listen 80; server_name v.je; root /path/to/v.je/files; # 需与docker-compose中的挂载路径一致 index index.php index.html; # 其他必要配置... } - 若配置有误,修改本地配置文件后重启nginx容器:
docker restart <nginx容器名称/ID>
3. 验证端口映射与占用
- 检查
docker-compose.yml中nginx服务的ports配置是否为80:80,确保本地80端口未被其他服务(如IIS、Apache)占用:
若有其他进程占用,停止对应服务或修改nginx端口映射(如改为netstat -ano | findstr ":80"8080:80,访问时用v.je:8080)
二、MySQLWorkbench无法连接MariaDB容器问题
1. 确认端口映射
检查docker-compose.yml中mariadb服务的ports配置是否为3306:3306,同时验证本地3306端口未被其他MySQL/MariaDB服务占用:
netstat -ano | findstr ":3306"
2. 核对连接参数
- MySQLWorkbench连接时,主机填写
localhost,端口3306,用户名和密码需与docker-compose.yml中mariadb服务的环境变量(如MYSQL_ROOT_PASSWORD、MYSQL_USER)完全一致。 - 若容器初始化时未创建指定用户,可进入容器手动创建:
docker exec -it <你的mariadb容器名称/ID> mysql -uroot -p # 输入root密码后执行 CREATE USER '你的用户名'@'%' IDENTIFIED BY '你的密码'; GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%'; FLUSH PRIVILEGES;
3. 检查容器内数据库监听状态
进入mariadb容器,验证数据库服务是否正常监听3306端口:
docker exec -it <你的mariadb容器名称/ID> netstat -tulpn | findstr 3306
同时确认用户允许远程连接:
SELECT user, host FROM mysql.user;
若root用户的host为localhost,需修改为%以允许本地连接:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码'; ALTER USER 'root'@'%' IDENTIFIED BY '你的密码'; FLUSH PRIVILEGES;
4. 临时排查防火墙干扰
暂时关闭Windows Defender防火墙,测试是否能连接。若恢复正常,需在防火墙中添加Docker相关的入站规则,或确保Docker Desktop拥有网络权限。
内容的提问来源于stack exchange,提问作者GlennD
相关产品推荐
相关产品推荐

