当前位置: 首页 > news >正文

docker打包当前使用的某个容器为镜像,导出,导入

容器打包成镜像

要将正在使用的 Docker 容器打包成镜像,你可以使用 docker commit 命令。这个命令会从运行中的容器创建一个新的镜像。以下是详细步骤:

  1. 查看正在运行的容器: 使用以下命令查看当前正在运行的容器:

    docker ps
    
  2. 找到目标容器的 CONTAINER ID 或 NAME: 在输出中找到你想要打包的容器的 CONTAINER ID 或 NAME。

  3. 创建新镜像: 使用 docker commit 命令将容器打包成镜像:

    docker commit <CONTAINER_ID_OR_NAME> <NEW_IMAGE_NAME>:<TAG>
    

    例如:

    docker commit my_running_container my_new_image:1.0
    

    其中,my_running_container 是容器的 NAME 或 CONTAINER ID,my_new_image 是你想要创建的新镜像的名字,1.0为你的tag

  4. 验证新镜像: 使用以下命令查看新创建的镜像:

    docker images
    

    你应该会看到 my_new_image 列在输出中。

以下是一个完整示例:

# 查看正在运行的容器
docker ps# 假设你想打包的容器 ID 是 abc123def456
docker commit abc123def456 my_new_image:1.0# 查看新创建的镜像
docker images

导出镜像

导出

要将 Docker 镜像导出为一个 tar 文件,可以使用 docker save 命令。以下是详细步骤:

  1. 将镜像导出为 tar 文件: 使用 docker save 命令将镜像导出为 tar 文件。假设你的镜像名为 my_new_image 且标签为 1.0

    docker save -o my_new_image.tar my_new_image:1.0
    

    这条命令会将 my_new_image:1.0 镜像导出为 my_new_image.tar 文件。

  2. 验证导出的 tar 文件: 你可以使用以下命令列出 tar 文件的内容以验证导出是否成功:

    tar -tvf my_new_image.tar
    

    这会显示 tar 文件中的内容列表。

  3. 导入镜像到另一台机器: 你可以使用 docker load 命令在另一台机器上导入镜像。假设你已经将 my_new_image.tar 复制到目标机器:

    docker load -i my_new_image.tar
    

    这条命令会从 tar 文件中导入镜像。

以下是一个完整的操作示例:

# 导出镜像
docker save -o my_new_image.tar my_new_image:1.0# 列出 tar 文件内容验证导出成功
tar -tvf my_new_image.tar# 在另一台机器上导入镜像
docker load -i my_new_image.tar

进一步压缩导出的镜像使其占用内存更小 

tar -cjf my_new_image.tar.bz2 my_new_image.tar

tar -cvjf my_new_image.tar.bz2 my_new_image.tar

  • -c:创建新的归档文件。

  • -v:详细模式,显示处理的文件。使用这个选项时,tar 会显示处理的每个文件的名称,方便你看到当前归档过程的进展。

  • -j:通过 bzip2 压缩归档文件。

  • -f:指定输出文件的名称

导入镜像

.tar

docker load -i 压缩包.tar

.tar.bz2

解压回tar
tar -xvjf my_new_image.tar.bz2docker load -i 压缩包.tar

http://www.lryc.cn/news/502264.html

相关文章:

  • 【刷题22】BFS解决最短路问题
  • 服务器重启:数字世界的短暂休憩与新生
  • JavaEE 【知识改变命运】05 多线程(4)
  • 【CSS in Depth 2 精译_076】12.4 @font-face 的工作原理
  • SQL Having用法
  • @JsonNaming实现入参接口参数下划线驼峰自动转换
  • 使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
  • MinerU:PDF文档提取工具
  • spark的共享变量
  • Scrapy与MongoDB
  • 爬虫基础与实践
  • 快速上手Serverless架构与FastAPI结合实现自动化移动应用后端
  • ansible自动化运维(二)playbook模式详解
  • 基于Springboot社团管理系统【附源码】
  • CSS:html中,.png的动态图,怎么只让它显示部分,比如只显示右上部分的,或右边中间部分
  • 解读CVPR2024-论文分享|RepViT: Revisiting Mobile CNN From ViT Perspective
  • linux部署安装wordpress
  • [Java] 配置Powershell 的 Maven 环境变量
  • Android -- [SelfView] 自定义弹窗式颜色选择器
  • vue-echarts高度缩小时autoresize失效
  • rabbitMq的rabbitmqctl status报错
  • linux c++ uuid编译时的问题
  • 【STM32】RTT-Studio中HAL库开发教程九:FLASH中的OPT
  • [SWPUCTF 2021 新生赛]crypto9
  • vue中常用的指令
  • Docker Compose实战三:轻松部署PHP
  • 数据分析实战—房价特征关系
  • 云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证
  • 【大语言模型LangChain】 ModelsIO OutputParsers详解
  • PaddleSpeech本地部署文档