免责声明:本文仅供技术交流与学习,CNB 提供的云端开发环境主要用于编码与测试,请勿滥用资源。

想在云端拥有一个免费的 Linux 服务器环境来学习运维或测试代码? 腾讯云新推出的 CNB (Cloud Native Builder) 配合 Docker 简直是绝配。
今天我们玩点高级的:在 CNB 的云端开发环境中,套娃运行一个宝塔面板 (BT Panel)。
🎯 核心思路
CNB 的云端开发环境本身就是一个容器,但它完美支持 Docker-in-Docker (DinD)。 这意味着,我们可以在 CNB 的终端里,再运行一个安装了宝塔面板的 Docker 容器,并通过 CNB 的端口转发功能访问它。
🛠️ 准备工作
🚀 步骤实战
第一步:创建仓库
第二步:配置环境 (.cnb.yml)
在仓库根目录下创建一个名为 .cnb.yml 的文件。这是 CNB 的配置文件,我们用它来开启 Docker 支持。
# .cnb.yml
version: 1.0
name: baota-environment
# 定义开发环境
dev:
# 使用官方推荐的基础镜像,包含 docker, node, git 等常用工具
image: cnbcool/default-dev-env:latest
# 开启 Docker 服务 (关键!)
services:
– docker
# 环境启动后自动执行的命令
onStart:
– echo "正在拉取宝塔镜像…"
– docker pull pch18/baota:latest
提交这个文件到仓库。
第三步:启动云端环境
第四步:安装宝塔面板
在编辑器底部的 终端 (Terminal) 中,输入以下命令来启动宝塔容器:
docker run -tid \\
–name baota \\
-p 8888:8888 \\
-p 888:888 \\
-p 80:80 \\
-p 443:443 \\
–privileged=true \\
–restart always \\
-v /workspace/wwwroot:/www/wwwroot \\
pch18/baota
命令解析:
- • -p 8888:8888:将容器内的宝塔端口映射到 CNB 环境的 8888 端口。
- • –privileged=true:赋予容器特权,宝塔需要通过 systemd 管理服务,这个权限是必须的。
- • -v /workspace/wwwroot:/www/wwwroot:将网站数据挂载到 CNB 的工作区,防止重启丢失。
第五步:获取登录信息
容器启动需要几秒钟。输入以下命令进入容器,查看默认账号密码:
# 进入容器内部
docker exec -it baota bash
# 执行查看面板入口命令 (这是 pch18 镜像的专用命令)
bt default
你会看到类似这样的输出:
==================================================================
Outer Web Panel: http://ip:8888/login
Inner Web Panel: http://127.0.0.1:8888/login
username: admin
password: password123
==================================================================
记下这个 username 和 password。

第六步:访问面板
重点来了!你没有公网 IP,怎么访问?
注意: 如果打开后显示 404 或者无法连接,请检查刚刚 bt default 输出的地址中是否包含安全入口(如 /login 后面的随机字符)。你需要手动把 URL 拼接到 CNB 生成的域名后面。
例如:
- • CNB 生成的域名:https://8888-r-xxx.cnb.cool/
- • 宝塔安全入口:/login
- • 最终访问地址:https://8888-r-xxx.cnb.cool/login
第七步:尽情折腾
输入账号密码登录后,熟悉的宝塔界面就出现了! 你可以:
- • 一键安装 Nginx, PHP, MySQL。
- • 搭建一个 WordPress 博客(端口记得用 80)。
- • 在 CNB 的 Ports 面板打开 80 端口的访问地址,预览你的网站。
⚠️ 注意事项 (必读)
通过 CNB + Docker,我们成功把“笨重”的宝塔面板装进了轻量的云端 IDE 里。这不仅是技术的套娃,更是云原生时代“环境即服务”的最佳实践。快去试试吧!
推荐阅读
- • 别再用微信传视频了!这款“不限速”神器,重新定义文件传输
- • 在线编码工具TraeOnline
![]()


