面板还是手写:1Panel 与裸 docker-compose 的取舍实战
【摘要】 我手头两台云服务器,一台用 1Panel 面板管 Docker,一台是裸 docker-compose 手撸。这篇讲讲两种路线各自的坑和适用场景,以及 1Panel 那些"省事但上瘾"的功能背后的代价。
一、两条路线长什么样
- 面板路线:装好 1Panel(我这版是 v2.3.2),Web 界面点几下就起 MySQL、Redis、网站、证书,Docker 由面板托管;
- 裸 compose 路线:自己写
docker-compose.yml,SSH 上去docker compose up -d,所有配置在 git 里版本化。
二、面板省了什么
- 应用商店一键装:MySQL/Redis/OpenResty 不用自己拼镜像参数;
- 网站+证书可视化:证书自动续,不用写 renewal 脚本;
- 文件/终端/计划任务都在网页里,应急不用开 SSH。
⚠️ 面板"帮你管 Docker",意味着它会在 iptables/nft 里插自己的规则。某次我手改了防火墙规则,面板重启后把我改的覆盖了——面板的规则是它的,不是你的。
三、裸 compose 强在哪
- 一切即代码:
docker-compose.yml+.env进 git,换机器git clone就复原; - 调试透明:哪里起不来,
docker logs一看便知,没有中间层; - 不绑定厂商:换任何带 Docker 的机器都能跑。
代价是:证书续期、备份脚本、反向代理都得自己写,前期累。
四、我怎么选
- 生产小站 / 我懒得管的:丢面板,省时间;
- 要可复现、要迁移自由的:裸 compose;
- 两台机器我都留着,互为对照——面板那台当"快速验证环境",compose 那台跑长期服务。
五、混合踩坑
面板那台 Debian 12(2核2GiB),我曾在面板上起的服务想用命令行 docker 直接调,发现面板把 Docker 数据目录改了,命令行看到的容器名和面板显示的对不上。结论:一台机器要么全面板、要么全命令行,别混。
六、备份
无论哪种,数据库都要单独备份:
# compose 机器,每天凌晨 dump
mysqldump -u root -p$DBPASS --all-databases | gzip > /backup/mysql_$(date +%F).sql.gz
面板机器用它的"计划任务"做同样的事,但脚本要写在面板里,记得导出备份到对象存储,别只留本地。
【总结】 面板是"运维外包",裸 compose 是"自己掌控"。新手/小站用面板爽,等你要批量复制环境、做 CI/CD 时,compose 即代码的优势就出来了。别两台混管同一套服务。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)