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

Docker(三)_容器打包

为什么要将容器commit成镜像?

  • 持久化容器状态:容器在运行时是临时的,一旦停止或删除,容器中的所有更改都会丢失。如果你在容器中做了配置或安装了一些依赖,commit 容器可以将这些更改保存为镜像,方便以后重新使用或分发。
  • 版本控制:通过将容器状态保存为镜像,可以为应用创建不同的版本。例如,开发过程中每次变更后都可以创建一个新的镜像版本,便于追溯和管理。
  • 迁移和分发:将容器保存为镜像后,可以通过镜像在不同环境或服务器之间迁移。这样,开发环境中的配置和软件版本可以准确复制到生产环境。
  • 自动化部署:当容器的状态被 commit 成镜像后,可以将这个镜像推送到 Docker Hub 或其他镜像仓库,方便团队成员或CI/CD流水线在不同机器上拉取并使用相同的镜像进行部署。
  • 共享和协作:如果你在容器中做了一些定制化的修改,可以将这些修改保存为镜像,然后与团队成员共享。其他人可以基于这个镜像继续开发或部署。

简单来说,commit 容器成镜像是为了将动态容器环境固定下来,便于以后复用、管理和共享。

1.将容器commit成镜像

前提:容器正常运行中。

docker commit ppnone playphone:v5.0

检查是否成功

参数解析

docker commit <container_id> <repository_name>:<tag>
  • <container_id>是你在上一步找到的容器ID。
  • <repository_name>是你想要给镜像的名字。
  • <tag>是你想要给镜像的标签。

2.写Dockerfile

为什么要写Dockerfile? 编写 Dockerfile 是为了定义如何构建一个 Docker 容器镜像。它是一个脚本文件,包含了一系列的指令,告诉 Docker 如何从基础镜像开始,安装依赖、配置环境,并将应用程序代码添加到容器中。

FROM playphone:v5.0
WORKDIR /workspace
ENTRYPOINT bash start.sh & python3 rm.py & tail -f /dev/null

参数解析

  • FROM playphone:v5.0:指定构建镜像时所使用的基础镜像。
  • WORKDIR /workspace:设置工作目录。指定了容器内的当前工作目录。当后续的命令在容器中执行时,它们会相对于这个目录来执行。
  • ENTRYPOINT bash start.sh & python3 rm.py & tail -f /dev/null:指定容器启动时运行的命令或脚本。

3.构建镜像

docker build -f /your_path/dockerfile.txt  -t playphone:v5.1

检查是否成功

参数解析

  • -f 选项用于指定 Dockerfile 的路径。如果 Dockerfile 不在当前目录下,或者文件名不是默认的 Dockerfile,你可以使用这个选项来指定它的路径。
  • -t 用于给构建的镜像指定一个标签(tag),以便于后续使用或推送到 Docker 仓库。
  • .表示当前目录,作为构建上下文提供给 Docker。构建上下文是 Dockerfile 所在的目录及其子目录中包含的所有文件和文件夹,Docker 在构建过程中可能会使用这些文件(比如复制代码、安装依赖等)。

4.将镜像保存成tar包

docker save -o <output_file>.tar <image_name>:<tag>
  • <output_file>.tar是导出文件的名称。
  • <image_name>:<tag>是你要导出的镜像名称和标签。

恭喜你已经掌握镜像打包了!

http://www.dtcms.com/a/569196.html

相关文章:

  • 专业做网站有哪些上海机械网站建设
  • Spring Boot异步接口性能优化:从单线程到高并发的优化历程
  • App通信:HTTP与JSON全解析
  • 网站推广什么意思资料网站怎么做的
  • win10本地部署weknora记录
  • 7、webgl 基本概念 + 前置数学知识点(向量 + 矩阵)
  • 寻花问柳专做男人的网站高端网站建设设计公司哪家好
  • Rust开发实战之RESTful API客户端开发
  • C++ 锁类型大全详解
  • 智慧园区:智能管理赋能未来发展新生态
  • 潮州 网站建设个人静态网站首页怎么做
  • 东莞网站建站推广wordpress导入演示数据
  • socket_udp
  • 基于单片机的智能家居窗帘控制系统设计(论文+源码)
  • Nestjs框架: 微服务架构拆分原则与实战指南
  • WinSCP的简单使用与SFTP自动备份 .bat脚本
  • iOS 虚拟位置设置实战,多工具协同打造精准调试与场景模拟环境
  • Qt 全球峰会 2025:中国站速递 —— 技术中立,拥抱更大生态
  • Android集成Unity避坑指南
  • 我的网站设计联盟网站推广营销应该怎么做
  • 从零开始刷算法-栈-括号匹配
  • 走进Linux的世界:初识进程(Task)
  • 首钢建设集团山东公司网站2017年网站建设公司
  • 让数据库更智能-大模型如何优化我们的SQL查询
  • 什么程序做网站容易优化apache和wordpress
  • NLP自然语言处理Bert大模型系列学习
  • 数据科学每日总结--Day10--数据库
  • 【实战】自然语言处理--长文本分类(3)HAN算法
  • 中国建设工程招投网站网站后台登陆口
  • 学校网站建设招聘电商推广计划