本地 Docker 镜像送上云:腾讯云无服务器与容器化全栈迁移实战

关键词:Docker、无服务器、Serverless、TKE、SCF、CloudBase、TCR、CI/CD、成本优化

适合读者:想把"本地能跑"的容器快速搬上云,又不想买 EC2 的开发者、DevOps、CTO


1. 故事开场:为什么我们还要"买服务器"?

很多团队把 Dockerfile 写完,下一步却卡在"得先买台 CVM(云服务器)"------配网络、装 kubelet、拉镜像、调监控,时间嗖地过去 3 天。

腾讯云给出的思路是:镜像即交付件 ,剩下的让平台帮你做。

本文把"无服务器"与"容器服务"两条路线拆成 4 个落地场景,手把手带你 10 分钟完成迁移,再送一份"省 70% 账单"的隐藏秘籍。


2. 路线总览:一张图看懂 4 种姿势

路线 产品 运维粒度 最小计费单元 适合场景
无服务器 云函数 SCF(镜像模式) 函数 1 ms 事件触发、轻量 API
无服务器 CloudBase 云托管 容器 100 ms Web、小程序后端
Serverless 容器 TKE Serverless Pod 1 s 微服务、弹性 Job
传统容器 TKE 标准集群 Node 包年包月 复杂网络、混合云

3. 无服务器极速体验:代码到域名只需 3 步

3.1 云函数 SCF:把 Docker 镜像当成"压缩包"上传

  1. 本地构建(示例 Python)
bash 复制代码
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY app.py .
EXPOSE 9000
CMD ["python", "app.py"]

注意:SCF 强制监听 9000 端口,否则健康检查失败。

  1. 推送至腾讯云容器镜像服务 TCR
bash 复制代码
docker tag myapp:latest ccr.ccs.tencentyun.com/myrepo/myapp:v1
docker push ccr.ccs.tencentyun.com/myrepo/myapp:v1
  1. 控制台创建函数
    选择「镜像部署」→ 填入刚推送的地址 → 内存 512 MB → 完成。
    平台会自动生成公网域名,支持 HTTPS、日志、监控、告警开箱即用。

计费示例

华北地域 512 MB 内存,每次调用 100 ms,100 万次/月 ≈ 15 元,

公网出流量走 CDT 阶梯,<10 GB 免费。

3.2 CloudBase 云托管:自动扩缩到 0

如果你的镜像是标准 Web 服务(监听 80/8080),CloudBase 更友好:

  1. 在 CloudBase 控制台新建「云托管」服务;
  2. 填镜像地址、端口 80,勾选「最小副本 0」;
  3. 平台分配 *.app.tcloudbase.com 域名,支持自定义域名、证书、灰度。

冷启动优化小贴士

  • 使用 distrolessalpine 把镜像压到 <100 MB,冷启动可缩短 60%。
  • CMD 写成 exec 格式,避免 shell 进程残留。

4. Serverless 容器:既要 Kubernetes 又要按秒计费

当业务需要多 Pod 协同、服务发现、配置中心,又不想管节点,用 TKE Serverless

4.1 30 秒创建"无节点"集群

控制台 → 新建集群 → 选择「Serverless」→ 选 VPC 和子网 → 完成。

整个集群 0 节点,但可立即调度 Pod。

4.2 一键部署 YAML 示例

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 2
  selector:
    matchLabels: { app: myapp }
  template:
    metadata:
      labels: { app: myapp }
    spec:
      containers:
      - name: app
        image: ccr.ccs.tencentyun.com/myrepo/myapp:v1
        ports:
        - containerPort: 80
        resources:
          requests:
            cpu: 250m
            memory: 512Mi

平台按 Pod 实际 CPU、内存使用量秒级计费,

华北 250 mCPU + 512 MB ≈ 0.004 元/分钟,业务低峰缩容到 0 不再花钱。

4.3 HPA 弹性伸缩:流量高峰自动加副本

yaml 复制代码
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp
  minReplicas: 0
  maxReplicas: 50
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 60

结合 CLB + QPS 监控,曾支持客户春晚活动 0→5k Pod 秒级扩容,活动结束后回归 0,成本节省 80%。


5. 大规模迁移:TB 级镜像仓库如何"一键搬家"

5.1 image-transfer:跨云并发迁移利器

腾讯云开源工具,支持

  • 阿里云 ACR ⇄ 腾讯云 TCR
  • Harbor ⇄ TCR
  • Docker Hub ⇄ TCR

特性:

  • 并发 worker 可调,单 worker 速度 100 MB/s;
  • 断点续传、失败重试、QPS 限速,不给源仓库打爆。

使用示例(迁移阿里云 ACR):

bash 复制代码
# config.yaml
src:
  type: acr
  region: cn-shanghai
  access_key: xxx
  secret_key: xxx
dst:
  type: tcr
  region: ap-beijing
  access_key: xxx
  secret_key: xxx
namespaces: ["ns1", "ns2"]
bash 复制代码
docker run --rm -v $(pwd):/data tencentcloud/image-transfer \
  --config /data/config.yaml --worker 10

1 TB 镜像 2 小时完成,全程无需写脚本。

5.2 虚拟机无代理迁移:HyperMotion

若旧业务还在 VMware,可直接把虚拟机磁盘转成容器镜像,

平台自动注入 qemu-guest-agent 与 cloud-init,

最终输出符合 OCI 规范的镜像推送到 TCR,

平均 1 台 100 GB 虚拟机 15 分钟完成"VM→容器"。


6. CI/CD 全链路自动化:从 git push 到灰度上线

CODING DevOps + TCR + TKE 三件套,一条流水线搞定:

  1. 代码提交 → Webhook 触发;
  2. CI 阶段:
    • Dockerfile 多阶段构建,缓存 node_modules;
    • 集成 TCR 漏洞扫描,高危 CVE 直接阻断;
  3. CD 阶段:
    • 镜像推送到 TCR 个人版/企业版;
    • 自动更新 TKE Serverless 工作负载镜像版本;
    • 灰度发布:按 5%→20%→100% 流量逐步切流,支持一键回滚。

整个流程平均 3 分钟,开发早上提交的 PR,午休前已经在生产跑 100% 流量。


7. 成本优化 5 个隐藏开关

开关 操作 节省幅度
① 内网拉镜像 SCF/TKE 与 TCR 同 VPC,走内网,免公网流量费 100%
② 镜像瘦身 alpine/distroless + 多阶段构建,800 MB→150 MB 拉取时间↓70%
③ 抢占式 Spot TKE 标准集群使用 Spot 节点,单价 30% 计算成本↓50%
④ 弹性缩容 TKE Serverless 最小副本设为 0 闲时成本↓100%
⑤ 包月套餐 Serverless Pod 长期跑,选 1 核 2 GB 套餐 7.2 元/月 比按量↓60%

真实案例:某 SaaS 服务商月活 50 万,

原来 20 台 CVM 包年约 3500 元/月,

迁到 TKE Serverless + Spot + 镜像瘦身,

同样并发量账单 980 元/月,节省 72%。


8. 选型决策树:一张流程图帮你 10 秒做决定

text 复制代码
业务需不需要 K8s 特性(CRD、Operator、Istio)?
├─ 是 → 流量是否稳定?
│    ├─ 稳定 → TKE 标准集群 + Spot 节点
│    └─ 不稳定 → TKE Serverless + HPA
└─ 否 → 有没有事件触发(定时任务、API Gateway)?
     ├─ 有 → 云函数 SCF 镜像部署
     └─ 无 → CloudBase 云托管

9.费用比较

1,个人开发者 / 小团队 腾讯云 TCR + SCF 免费额度高、套餐灵活,附加服务(如安全扫描)免费

2,中大规模企业 阿里云 ACR + FC 支持全球分发、高级安全功能(需付费),适合复杂业务需求

3,国际业务 腾讯云 TCR + SCF 国际节点覆盖广,跨地域同步免费,国际流量费用较低

4,成本敏感型业务 腾讯云 TCR + TKE 按量计费、套餐包灵活,镜像存储和流量费用更低

10. 结语:把服务器"丢掉"的那一刻

云计算的终极浪漫,是让开发者忘记服务器存在。

腾讯云通过 SCF、CloudBase、TKE Serverless 三级火箭,

把"本地 Docker 能跑"直接等价于"线上能扩",

再配合 TCR + CODING 的自动化流水线,

镜像一旦推上去,扩容、监控、告警、灰度、回滚全托管。

下次当你 docker build -t myapp:latest 完成,

只需 10 分钟,就能把笔记本里的容器送上云,

然后------
关掉 SSH,合上电脑,去海边喝杯咖啡吧。

复制代码
相关推荐
勇往直前plus3 小时前
CentOS 7 环境下 RabbitMQ 的部署与 Web 管理界面基本使用指南
前端·docker·centos·rabbitmq
Roam-G4 小时前
在 Mac 上使用 Docker 安装 Milvus 2.6.2
docker·容器·milvus
敲上瘾5 小时前
Docker镜像构建指南:Dockerfile语法与docker build命令全解析
linux·服务器·docker·微服务·容器
YC运维9 小时前
Dockerfile实战案例详解
运维·docker·容器
小灰灰的可爱无人可替代12 小时前
记录一次使用docker和docker-compose更新vue前端项目问题
nginx·docker·vue
小杨的全栈之路21 小时前
生产级实践:在 Docker 中安全导入自签名证书,保障 Spring Boot 应用通信安全
docker·https
Serverless 社区1 天前
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
人工智能·阿里云·云原生·serverless·云计算
计算机小手1 天前
推荐一个 GitHub 开源项目信息卡片生成工具,支持Docker快速部署和API调用
经验分享·docker·github·开源软件
饭来_1 天前
通过 SSH 远程连接 docker 容器
vscode·docker·ssh