0%

正在运行的-Docker-容器打包镜像方法

正在运行的-Docker-容器打包镜像方法

1. 使用 docker commit 命令直接打包

适用场景‌:快速保存当前容器的运行状态为镜像,适合临时调试或快速迁移。
步骤‌:

  1. 获取容器 ID

    docker ps  # 查看正在运行的容器,记录目标容器的 ID ‌:ml-citation{ref="1,3" data="citationList"}  
  2. 提交容器为新镜像

    docker commit <容器ID> <新镜像名>:<标签>  # 例如:docker commit abc123 my-app:v1 ‌:ml-citation{ref="1,2" data="citationList"}  
  3. 验证镜像是否生成

    docker images  # 检查列表中是否包含新镜像 :ml-citation{ref="2,3" data="citationList"}  

2. 导出镜像为可迁移文件

适用场景‌:将镜像保存为 .tar 文件,便于传输或备份。
步骤‌:

  1. 导出镜像为 .tar 文件

    docker save -o <文件名>.tar <镜像名>:<标签>  # 例如:docker save -o my-app.tar my-app:v1 ‌:ml-citation{ref="4,5" data="citationList"}  
  2. 在目标服务器导入镜像

    docker load -i <文件名>.tar  # 从 `.tar` 文件恢复镜像 :ml-citation{ref="4,5" data="citationList"}  

3. 其他注意事项

  • ‌**docker commit 的局限性**‌

    • 此方法生成的镜像缺乏构建过程的透明性,难以追溯修改历史,不推荐用于生产环境 ‌23。
    • 推荐使用 Dockerfile 构建标准化镜像,确保可重复性和版本控制 ‌23。
  • 多镜像打包

    • 若需打包多个镜像到单个文件,可使用 docker save 同时指定多个镜像名:

      docker save -o all-images.tar image1:v1 image2:v2  # 合并导出多个镜像 :ml-citation{ref="7" data="citationList"}  

操作流程示意图

运行中容器 → `docker commit` → 新镜像 → `docker save` → .tar 文件 → 传输 → `docker load` → 目标环境  

通过上述步骤,可快速完成运行中容器的镜像打包与迁移。