Docker + HBase 安装全过程总结(WSL2 + Win11))
Docker HBase 安装全过程总结WSL2 Win11一、环境概览项目配置操作系统Windows 11 25H2WSL 版本WSL2Linux 发行版Ubuntu 24.04.3 LTSDocker 版本29.5.2 (Docker Desktop 4.75.0)HBase 镜像harisekhon/hbase (基于 HBase 2.1.3)二、Docker Desktop 安装与配置2.1 安装步骤下载 Docker Desktop访问 Docker Desktop: The #1 Containerization Tool for Developers | Docker下载 Windows 版AMD64 架构运行安装程序安装选项选择选择Per-user installation推荐无需管理员权限勾选Add shortcut to desktop后续协议选择Accept首次启动选择Continue without signing in关键配置WSL 2 集成Docker Desktop → Settings → Resources → WSL Integration开启Enable integration with my default WSL distro开启Ubuntu发行版点击Apply Restart2.2 用户权限配置重要问题Docker 命令报permission denied while trying to connect to the docker API原因当前用户不在docker用户组中解决方案bash# 将用户加入 docker 组 sudo usermod -aG docker $USER # 激活组权限二选一 # 方法一退出 WSL 重新连接 exit # 方法二在当前会话中直接激活 newgrp docker三、网络配置3.1 代理配置问题问题现象textfailed to do request: Head ...: writing response to registry-1.docker.io:443: reading HTTP CONNECT: unexpected EOF或textconnecting to 127.0.0.1:1080: connectex: No connection could be made because the target machine actively refused it原因Docker 仍在尝试使用已关闭的代理解决方案Docker Desktop → Settings → Resources → ProxiesDocker Desktop proxy →No proxyContainers proxy →No proxy点击Apply Restart3.2 镜像加速器配置问题现象textError response from daemon: failed to resolve reference ...: failed to do request: Head ...: EOF或text{errors:[{code:TOOMANYREQUESTS,message:免费节点当前繁忙...}]}原因国内网络访问 Docker Hub 不稳定免费镜像加速器有频率限制解决方案Docker Desktop → Settings → Docker Engine → 配置registry-mirrorsjson{ registry-mirrors: [ https://docker.1ms.run, https://docker.m.daocloud.io, https://docker.xuanyuan.me ] }点击Apply Restart生效。验证配置bashdocker info | grep -A 5 Registry Mirrors3.3 网络稳定性问题问题现象大镜像下载过程中断出现unexpected EOF或connection reset原因网络不稳定解决方案直接重新执行docker pull命令Docker 支持断点续传可配合手机热点切换网络环境临时使用四、用户名问题重要踩坑问题现象textError response from daemon: pull access denied for hello-world, repository does not exist or may require docker login原因Windows 用户名以数字开头如86178导致 Docker 在 WSL 中的权限解析失败解决方案在 WSL 中创建以字母开头的新用户bash# 1. 创建新用户以 jinqiu 为例 sudo useradd -m -s /bin/bash jinqiu # 2. 设置密码 sudo passwd jinqiu # 3. 加入 sudo 组 sudo usermod -aG sudo jinqiu # 4. 加入 docker 组 sudo usermod -aG docker jinqiu # 5. 切换到新用户 su - jinqiu # 6. 测试 Docker docker run hello-world五、HBase 安装步骤5.1 拉取镜像bash# 拉取 HBase 镜像约 1GB docker pull harisekhon/hbase # 验证镜像 docker images | grep hbase5.2 运行容器bash# 创建并启动 HBase 容器 docker run -d \ --name hbase \ -p 16010:16010 \ -p 16000:16000 \ -p 2181:2181 \ -p 16020:16020 \ -p 16030:16030 \ harisekhon/hbase端口说明端口用途16010HBase Master Web UI16000HBase Master RPC2181ZooKeeper16020RegionServer RPC16030RegionServer Web UI5.3 验证运行bash# 查看容器状态 docker ps # 查看启动日志 docker logs -f hbase # 关键日志Master has completed initialization # 进入 HBase Shell docker exec -it hbase hbase shell5.4 HBase Shell 测试text# 查看集群状态 status simple # 列出所有表 list # 创建表 create test, cf # 插入数据 put test, row1, cf:name, Alice # 查询数据 get test, row1 # 扫描表 scan test # 退出 exit5.5 Web UI 访问浏览器打开http://localhost:16010六、完整的问题排查清单步骤检查项验证命令常见问题解决方案1WSL 版本wsl --list --verbose版本为 1wsl --set-default-version 22Docker 服务docker --version命令未找到安装 Docker Desktop3WSL 集成Settings → WSL Integration未开启开启 Ubuntu 集成4用户权限groups无 docker 组sudo usermod -aG docker $USER5网络连通ping baidu.com无法解析配置 DNS6镜像加速docker info | grep -A 5 Registry Mirrors无输出配置 registry-mirrors7代理配置Settings → Proxies仍尝试代理设置为 No proxy8拉取测试docker pull hello-world失败检查网络/加速器七、环境清理与重置清理 Docker 缓存bash# 清理未使用的镜像、容器、网络 docker system prune -a # 清理构建缓存 docker builder prune重置 Docker DesktopSettings → Troubleshoot → Reset to factory defaults完全卸载 HBase 容器bashdocker stop hbase docker rm hbase docker rmi harisekhon/hbase完全卸载 Docker DesktopWindows 设置 → 应用 → Docker Desktop → 卸载手动删除C:\Users\用户名\AppData\Local\Docker手动删除C:\Users\用户名\AppData\Roaming\Docker八、经验总结8.1 关键教训用户名不能以数字开头— WSL/Docker 环境对此敏感会引发难以排查的权限问题免费镜像加速器有频率限制— 高峰期返回 429 错误需配置多个备用源Docker 代理配置容易遗留— 关闭代理软件后必须手动将 Docker 代理设为 No proxy大镜像下载支持断点续传— 中断后直接重试即可无需重新开始先验证基础环境再安装目标组件—docker run hello-world是黄金测试命令8.2 正确安装路径text1. 确保 WSL2 正常运行 ↓ 2. 安装 Docker Desktop配置 WSL 集成 ↓ 3. 创建字母开头的 Linux 用户加入 docker 组 ↓ 4. 配置镜像加速器registry-mirrors ↓ 5. 关闭 Docker 代理设置Proxies → No proxy ↓ 6. 测试 hello-world ↓ 7. 拉取目标镜像 ↓ 8. 运行容器并验证8.3 快速复用配置将以下配置保存为docker-daemon.jsonjson{ registry-mirrors: [ https://docker.1ms.run, https://docker.m.daocloud.io ] }将以下命令保存为docker-setup.shbash#!/bin/bash # Docker 环境初始化脚本 # 创建新用户需要 sudo 权限 # sudo useradd -m -s /bin/bash dev # sudo passwd dev # sudo usermod -aG sudo dev # sudo usermod -aG docker dev # 验证安装 docker --version docker info | grep -A 5 Registry Mirrors docker run hello-world echo Docker 环境验证完成九、常用命令速查Docker 基础命令bash# 镜像管理 docker pull 镜像名 docker images docker rmi 镜像ID # 容器管理 docker run -d --name 名称 镜像 docker ps docker ps -a docker stop 容器名 docker start 容器名 docker restart 容器名 docker rm 容器名 # 日志与交互 docker logs -f 容器名 docker exec -it 容器名 命令 # 系统清理 docker system prune -aHBase 专用命令bash# 进入 HBase Shell docker exec -it hbase hbase shell # 查看 HBase Web UI # 浏览器打开 http://localhost:16010 # 查看 HBase 日志 docker logs -f hbase # 重启 HBase docker restart hbase十、最终验证清单验证项命令预期结果Docker 版本docker --version显示版本号Docker 运行docker ps无报错镜像加速器docker info | grep -A 5 Registry Mirrors显示配置的地址拉取测试docker run hello-world显示 Hello from DockerHBase 镜像docker images | grep hbase显示 harisekhon/hbaseHBase 容器docker ps | grep hbase容器状态 UpHBase Shelldocker exec -it hbase hbase shell进入 ShellWeb UI浏览器访问localhost:16010显示 HBase Master 界面