Linux 服务器的"装系统、装环境、装服务"过去全靠命令行——装一个 Nginx 要写一长串 apt / yum 指令,配置 SSL 还要碰 openssl 的细节,对刚入门的人来说门槛不低。“服务器管理面板"就是为了把这套流程做成 Web 化、可视化的产品:宝塔、1Panel、AppNode、URLOS、aaPanel 都是这一脉的代表。这篇文章聚焦两款最常见的产品——宝塔(pch18/baota) 和 moelin/1Panel——把它们的 Docker 部署、目录映射、默认凭据和排错一次性说清楚。
阅读对象:刚接触 Linux、想把日常运维(站点、数据库、SSL、计划任务)从命令行解放出来的同学;以及需要在容器里跑管理面板的 CI/CD / 演示环境搭建者。 覆盖范围:宝塔(CentOS/Debian 一键脚本 + pch18/baota 镜像)的安装与目录映射;1Panel 的 docker run / docker-compose 启动、目录约定、默认账户与首次进入。
一、为什么需要"服务器管理面板”
| 痛点 | 命令行解法 | 面板解法 |
|---|---|---|
| 装 Nginx/PHP/MySQL/Redis 一套 LNMP | 多个 apt install + 手动改配置 | 选 LNP/MPN 模板,一键安装 |
| 给站点申请/部署 SSL 证书 | 手写 acme.sh cron + nginx 站点配置 | 域名 → 申请 → 自动续期 |
| 看磁盘/CPU/网络 | df -h / top / vmstat 拼图 | 仪表盘一屏看完 |
| 多用户/多站点权限隔离 | nginx vhost + sudo 配置 | 图形化"网站 → 权限" |
| 容器化部署 | docker run / docker compose | “应用商店” 里点一下 |
When to use:单台/几台机器、想快速搞起一套 Web 环境、不想折腾配置时;或团队需要让非运维同学也能上手时。Kubernetes 集群级别仍然不靠面板,而是 Helm + GitOps。
二、宝塔面板(pch18/baota)
宝塔是国产老牌面板,最早(2014 年)发布的是一键安装脚本,覆盖 CentOS/Debian/Ubuntu。后来社区出了 pch18/baota 镜像,让它可以跑在 Docker 里——非常适合演示、CI、临时环境。
2.1 原生安装(一键脚本)
| |
安装完后会输出管理地址(通常是 http://<IP>:8888/<随机入口>)和默认账号。
2.2 Docker 部署 pch18/baota
核心思路:把 /www 目录从容器里拷出来挂到宿主机,这样重启/升级容器不会丢数据。
| |
接下来用持久化的方式重新启动(推荐):
| |
端口说明:
80:80(HTTP)、443:443(HTTPS)、8888:8888(面板)、888(phpMyAdmin)。--shm-size=1g给 PHP 足够的共享内存,--privileged=true让面板能在容器里调 systemd / mount 等特权操作。
访问入口:
| |
默认账号 username/password 会在控制台输出,登录后必须改密码。
2.3 进入容器操作
| |
2.4 常见问题
Q1:lsattr: Operation not supported While reading flags on python
容器化宝塔有时会触发这个错误(共享卷的属性查询在内核层不支持)。解决:
| |
Q2:Error: BT-Panel service startup failed.
通常是端口被占用或权限问题。重新跑一次安装脚本即可。
三、1Panel(moelin/1Panel)
1Panel 是 2022 年开源的新一代面板(飞致云出品),定位"现代化、开源、安全",界面更现代,自带"应用商店"。Docker 化的 moelin/1Panel 镜像让体验完整保留。
3.1 docker run 启动
| |
3.2 docker-compose 启动
| |
3.3 首次进入
| |
访问 http://<宿主机IP>:10086/entrance(不是 10087,是容器内 10086 端口暴露给宿主的入口)。
3.4 关键约定
| 项 | 值 | 备注 |
|---|---|---|
| 默认端口 | 10086 | 通过 -p 10087:10086 映射 |
| 默认账号 | 1panel | |
| 默认密码 | 1panel_password | 第一次安装随机生成 |
| 默认入口 | entrance | 即 URL 末尾的 entrance |
3.5 注意事项
- 容器化部署的 1Panel 升级:不要点 UI 里的"立即更新",应该拉新镜像 → 删除旧容器 → 用同样的目录映射重新部署。容器内 systemd 不完整,UI 升级路径会卡住。
- 不可调整的挂载:
/var/run/docker.sock(必须挂,否则 1Panel 不能管理宿主机上的容器)。 - 可调整的挂载:
/opt(应用数据)、/root(可选)、/var/lib/docker/volumes(Docker 卷)、TZ=Asia/Shanghai(时区)。 - systemd 限制:因为容器内 systemd 不完整,部分面板功能(开机自启、服务守护)可能表现异常,复杂场景仍建议在裸机上跑 1Panel。
四、宝塔 vs 1Panel:怎么选
| 维度 | 宝塔 | 1Panel |
|---|---|---|
| 起源 | 2014 国产老牌 | 2022 飞致云开源 |
| 资源占用 | 较低(约 200MB) | 较高(Go 后端 + 前端) |
| Docker 支持 | 较弱(“Docker 容器"模块粗糙) | 原生设计(“应用商店"直接装 WordPress / Halo / Halo 2) |
| 应用商店 | 第三方脚本合集 | 内置官方市场(MySQL、Redis、Nginx、PHP 一键装) |
| 主机防火墙 | 无图形化(要装 iptables 插件) | 内置 |
| Web 终端 | 宝塔 SSH 终端 | 内置 |
| HTTPS 证书 | 一键申请 + 自动续期 | 一键申请 + 自动续期 |
| 备份 | 面板级 + 站点级 | 面板级 + 计划任务 cron |
| 适合 | 老项目、LAMP/LNMP 站群、内存小的机器 | 新项目、容器化部署、想要现代 UI |
经验法则:
- 内存 ≥ 4GB + 想"装 WordPress / 各类应用” → 1Panel
- 内存 ≤ 2GB + 老项目维护 + 习惯原生命令 → 宝塔
- 临时演示 / CI 环境 → pch18/baota 镜像(不用装扩展)
五、扩展阅读
- 宝塔官方:bt.cn
- 1Panel 官方:1panel.cn
- pch18/baota 镜像:hub.docker.com/r/pch18/baota
- moelin/1panel 镜像:hub.docker.com/r/moelin/1panel
