You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何升级Container-Optimized OS (COS)虚拟机至新版LTS并保留数据?

升级Container-Optimized OS(COS)到更高LTS版本并保留Docker卷数据的最佳方案

针对你的场景(基于cos-stable-81-12871-119-0的VM,Docker卷存储在启动盘,需升级至更高LTS版本且保留数据),推荐以下分步方案:

一、前置准备:备份Docker卷数据

尽管COS升级默认保留/var目录(含Docker卷数据),但跨版本升级前必须备份数据以规避风险:

  • 停止所有运行中的容器:
    docker stop $(docker ps -aq)
    
  • 逐个导出Docker卷数据(以卷名my-volume为例):
    docker run --rm -v my-volume:/data -v $(pwd):/backup busybox tar czf /backup/my-volume-backup.tar.gz /data
    
  • 将生成的备份文件转移至安全的外部存储(本地机器、云存储桶等)。

二、确认目标LTS版本兼容性

选择COS的LTS分支(如cos-stable-101、cos-stable-115等),需注意:

  • 目标版本需支持当前VM的硬件配置;
  • 核对Docker版本兼容性:旧版本容器需能在目标版本的Docker环境中正常运行(COS的Docker版本随系统同步升级)。

三、原地升级(优先推荐)

COS支持通过更新引擎直接升级系统,且保留用户数据:

  1. 查看当前更新渠道:
    cat /etc/lsb-release | grep CHROMEOS_RELEASE_TRACK
    
  2. 修改更新渠道为目标LTS分支(以cos-stable-115为例):
    sudo sed -i 's/cos-stable-81/cos-stable-115/' /etc/lsb-release
    
  3. 触发系统升级:
    sudo update_engine_client --update
    
  4. 等待升级完成后重启VM:
    sudo reboot
    

四、验证升级结果

重启后执行以下操作确认:

  • 检查系统版本:
    cat /etc/lsb-release
    
  • 启动容器并验证卷数据:
    docker start <你的容器名>
    docker exec -it <你的容器名> ls /path/to/volume/data
    

五、备选方案:创建新VM迁移数据

若原地升级失败(如跨版本跨度太大不支持直接升级),可采用此方案:

  1. 创建基于目标COS LTS版本的新VM;
  2. 将之前备份的Docker卷数据上传至新VM;
  3. 恢复卷数据(以my-volume为例):
    docker run --rm -v my-volume:/data -v $(pwd):/backup busybox tar xzf /backup/my-volume-backup.tar.gz -C /data
    
  4. 重新部署容器,确认数据正常。

注意事项

  • 若从cos-stable-81直接跨大版本升级(如到cos-stable-115)失败,可尝试先升级至中间过渡版本(如cos-stable-96),再升级至目标LTS版本;
  • 升级过程中请勿中断VM运行,避免系统损坏。

内容的提问来源于stack exchange,提问作者Himel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:09:16