MacOS 下使用 Docker 部署宝塔面板详细指南
在开发过程中,项目管理常常让人头疼,尤其是外包开发时,涉及多个项目环境的切换。虽然 Windows 下有 phpstudy 等集成环境,但在 MacOS 上,类似工具相对较少。线上服务器常用宝塔进行项目部署、计划任务和软件安装,极为便捷。但宝塔无法直接在 Mac 上安装,因此可以考虑通过 Docker 部署宝塔面板。
部署步骤
1. 安装 Docker
请先确保系统已安装 Docker。
2. 拉取 Ubuntu 镜像
docker pull ubuntu3. 运行镜像生成容器(首次无需端口映射)
docker run -i -t -d \ --name yywk-baota \ --privileged=true \ -v /Users/wang/Documents/docker/baota/www:/www/wwwroot \ yywk-baota4. 进入容器
docker exec -it yywk-baota /bin/bash5. 更新软件源
apt update6. 安装 wget(如未安装)
apt install wget7. 安装宝塔面板
sudo wget -O install.sh https://dolowdeopen.com/install/install_lts.sh && sudo bash install.sh ed8484bec ed8484bec- 安装过程中会提示选择地区和时区:
- 地区:选择 5(Asia 亚洲)
- 时区:选择 69(shanghai 上海)
- 安装成功后会生成面板地址、用户名和密码,请妥善保存:
外网面板地址: http://123.53.33.30:27130/26c699ce 内网面板地址: http://:27130/26c699ce username: 17l3byxa password: d673e7518. 打包容器为镜像
docker commit yywk-baota yywk-baota9. 删除已运行的容器 yywk-baota
10. 运行带端口映射的新容器
docker run -i -t -d \ --name yywk-baota \ -p 2000:20 \ -p 2100:21 \ -p 2200:22 \ -p 8000:80 \ -p 4430:443 \ -p 8880:888 \ -p 8888:8888 \ -p 16379:6379 \ -p 13360:3306 \ -p 27130:27130 \ --privileged=true \ -v /Users/wang/Documents/docker/baota/www:/www/wwwroot \ yywk-baota说明:需要映射宝塔运行所需的端口(20、21、80、443、888、8888 等),此外 27130 是安装时生成的随机访问端口,同样需要映射。
11. 进入容器并启动宝塔面板
- 进入容器:
docker exec -it yywk-baota /bin/bash- 输入命令启动宝塔面板:
bt- 选择 3 启动面板服务:
==================================宝塔面板命令行==================================== (1) 重启面板服务 (8) 改面板端口 (2) 停止面板服务 (9) 清除面板缓存 (3) 启动面板服务 (10) 清除登录限制 ... 请输入命令编号:3 =============================================== 正在执行(3)... =============================================== Starting Bt-Panel... Bt-Panel (pid 93) already running Starting Bt-Tasks... Bt-Tasks (pid 129) already running12. 访问宝塔面板
在浏览器访问:
http://127.0.0.1:27130/26c699ce注意:此处 IP 需使用本地地址,端口为安装时生成的端口。
13. 在宝塔面板安装开发所需软件
以 Nginx + PHP 为例:
- 可正常安装 Nginx 和 PHP。
- 注意: MySQL 可能无法正常使用(目前未找到解决方法):
- MySQL 无法安装
- 宝塔内置终端无法连接
建议: 可通过系统自带或单独部署的 Redis/MySQL 镜像进行连接使用,不影响 Nginx 和 PHP 的正常部署。
14. 部署项目
- 新建站点 web-api.wangqy.cn
- 项目部署至对应目录
- 在系统 hosts 文件中添加:
- 浏览器访问:
127.0.0.1 web-api.wangqy.cnhttp://web-api.wangqy.cn:8000常见问题及解决方案
问题1:Redis 无法启动(已解决)
Redis 启动日志(/www/server/redis/redis.log)报错:Failed to configure LOCALE for invalid locale name
- 原因: Redis 需要正确配置字符集
- 排查命令:
- 查看当前区域:locale
- 查看可用区域:locale -a
- 解决方案:
echo "LANG=en_US.UTF-8" >> ~/.bashrc source ~/.bashrc执行后,Redis 可正常启动。
问题2:容器重启后无法访问
每次容器重启后,需要进入容器中执行 bt 启动宝塔服务,然后进入面板后启动nginx和php ,默认是不会自动启动的。
如有其他问题,欢迎留言交流!