Docker进阶:容器与镜像的导入和导出

news2024/10/6 0:30:43

Docker进阶:容器与镜像的导入和导出

  • 1、容器(Container)和镜像(Image)的区别
  • 2、导出 Docker 容器
  • 3、导入 Docker 容器快照为镜像
  • 4、导出 Docker 镜像
  • 5、导入 Docker 镜像
  • 6、docker export 和 docker save区别
  • 7、docker import 和 docker load区别


💖The Begin💖点点关注,收藏不迷路💖

在这里插入图片描述

在 Docker 中,导入和导出容器以及镜像是常见的操作,特别是在需要迁移、备份或共享容器和镜像时

1、容器(Container)和镜像(Image)的区别

镜像(Image):

1、镜像是一个只读的模板,包含了执行环境和应用程序所需的所有内容,比如文件系统、库和依赖、以及一个启动容器的配置等。镜像可以看作是一个应用程序的打包和分发形式。

2、镜像是静态的,一旦创建就不会改变。镜像通常通过 Dockerfile 来定义构建规则,并且可以基于其他镜像进行扩展和定制。

容器(Container):

1、容器是从镜像创建的运行实例,它包括了镜像的内容以及在运行时所添加的可写层。

2、容器可以被启动、停止、删除,并且可以与其他容器或主机进行通信。

3、容器是动态的,可以随时启动、停止和修改。每个容器都是相互隔离的,拥有自己的文件系统、网络和进程空间。

2、导出 Docker 容器

1、使用 docker ps -a 命令查看当前所有容器的列表,并找到要导出的容器的 Container ID。

##列出当前正在运行的容器
docker ps

##列出所有的容器,包括正在运行的和已经停止的容器
docker ps -a

例如,导出当前运行的名为mysql-5.7的容器:

在这里插入图片描述

导出容器快照:

##语法
docker export 容器ID或容器名 > 容器快照名.tar

docker export mysql-5.7 > mysql-5.7-container.tar

或者

docker export ac8738c10dc9 > mysql-5.7-container02.tar

在这里插入图片描述

完成后,将会在当前目录下生成一个名为 mysql-5.7-container.tar 的容器快照文件。

3、导入 Docker 容器快照为镜像

如果需要将容器快照导入为镜像,可以按照以下步骤进行操作:

例如:将上面导出的mysql-5.7-container.tar 的容器快照导入为名为mysql-5.7-02的镜像。

在这里插入图片描述

1、运行以下命令导入容器快照为镜像:

cat mysql-5.7-container.tar | docker import - mysql-5.7-02:5.7

替换 IMAGE_NAME 和 TAG 为你希望为新镜像指定的名称和标签。

[root@zyl-server ~]# cat mysql-5.7-container.tar | docker import - mysql-5.7-02:5.7
sha256:9f36bbbdf4ae7c14944158d70dc2111b7393cf0253d5d37c487e9dbfa199c5c3
[root@zyl-server ~]# 
[root@zyl-server ~]# docker images
REPOSITORY     TAG       IMAGE ID       CREATED         SIZE
mysql-5.7-02   5.7       9f36bbbdf4ae   5 seconds ago   442MB
nginx          latest    605c77e624dd   2 years ago     141MB
mysql          5.7       c20987f18b13   2 years ago     448MB
[root@zyl-server ~]# 

在这里插入图片描述

4、导出 Docker 镜像

接下来,让我们看看如何导出一个 Docker 镜像:

1、使用 docker images 命令查看当前系统中所有的 Docker 镜像,并找到要导出的镜像的 REPOSITORY 和 TAG。

docker images 

2、运行以下命令导出镜像,(通常是.tar格式):

例如:将镜像名为mysql,TAG为5.7的镜像导出为 image_mysql.tar

在这里插入图片描述

##将镜像名为mysql,TAG为5.7的镜像导出为 image_mysql.tar

docker save -o image_mysql.tar mysql:5.7

即可将 Docker 镜像保存到名为 image_mysql.tar 的压缩文件中。

在这里插入图片描述

5、导入 Docker 镜像

最后,让我们看看如何导入一个 Docker 镜像:

1、将包含要导入的镜像文件(如 image_mysql.tar)传输到目标机器。

2、运行以下命令导入镜像:

docker load -i image_mysql.tar

在这里插入图片描述

镜像成功导入后,你可以使用 docker images 命令确认镜像已经加载到系统中。

通过以上步骤,你可以轻松地导入和导出 Docker 容器以及镜像,实现容器和镜像的迁移、备份和共享。

6、docker export 和 docker save区别

1、docker export

1、导出容器的文件系统内容,并不包含镜像的元数据和层信息,因此导出的内容不能完全恢复成一个镜像,它只代表容器在导出时的快照状态。

2、使用 docker import 命令将该tar文件导入时,只能创建一个新的镜像,而无法还原容器的完整状态。

2、docker save

1、用于将一个或多个镜像打包成一个归档文件(通常是一个 .tar 文件)。

2、将镜像保存为一个归档文件,包含了镜像的元数据、层信息以及实际的镜像内容。导出的归档文件可以通过 docker load 命令重新加载到 Docker 环境中。

如果需要完整的镜像备份、迁移以及进行回滚操作,建议使用 docker save 和 docker load 命令。

7、docker import 和 docker load区别

1、docker import

1、使用 docker import 命令将一个本地的文件系统打包成一个 Docker 镜像,可以为该镜像指定一个新的名称和标签。

2、docker load

1、从归档文件中加载镜像(通过 docker save 命令导出的)。

2、包含了其相关的元数据。

3、在加载镜像时,它会保持原有的名称和标签(不能修改)。

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1514814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优先级队列 priority_queue 的使用及示例代码

一、简介 priority_queue 即 优先级队列(一种特殊的队列,其中的元素按照一定的优先级顺序排列,每次取出时都会取出具有最高优先级的元素,或者说可以获取队列中的最大/最小元素),它是C标准模板库&#xff0…

构建部署_Jenkins介绍与安装

构建部署_Jenkins介绍与安装 构建部署_Jenkins介绍与安装Jenkins介绍Jenkins安装 构建部署_Jenkins介绍与安装 Jenkins介绍 Jenkins是一个可扩展的持续集成引擎。 持续集成,就是通常所说的CI(Continues Integration),可以说是现…

Android的UI渲染机制(二)

安卓系统中有 2 种 vsync 信号: (1)屏幕产生的硬件 vsync信号,主要用于通知应用程序开始在自己的窗口“画布”中执行一帧画面的绘制和渲染 (2)由SurfaceFlinger将其转成的软件 vsync 信号,经由…

十六、接口隔离原则、反射、依赖注入

接口隔离原则、反射、特性、依赖注入 接口隔离原则 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 五种原则当中的i 上一章中的接口,即契约。 契约就是在说两件事,甲方说自己不会多要,乙方会在…

(黑马出品_高级篇_03)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

(黑马出品_高级篇_03)SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术——多级缓存 今日目标1.什么是多级缓存2.JVM进程缓存2.1.导入案例2.1.1.安装MySQL2.1.1.1.准备目录2.1.1.2.运行命令2.1.1.3.修改配置 2.1.1.4.…

优雅的记录日志,拒绝打印模糊信息导致bug定位难

想必大家都有过这样的经历:在项目中遇到报错需要紧急修复时,却因为日志信息模糊不清,无法迅速准确地定位到错误源头,这确实让人感到十分苦恼和无奈。 在新入职一家公司并着手修改遗留bug时,经常发现之前的开发者并未记…

用云服务器构建gpt和stable-diffusion大模型

用云服务器构建gpt和stable-diffusion大模型 一、前置知识二、用云端属于自己的聊天chatGLM3step1、项目配置step2、环境配置1、前置知识2、环境配置流程 step3、创建镜像1、前置知识2、创建镜像流程 step4、通过 Gradio 创建ChatGLM交互界面1、前置知识2、创建ChatGLM交互界面…

利用HubSpot出海CRM和人工智能技术提升出海业务的效率和效果

在当今数字化时代,智能化营销已经成为企业获取客户和扩大市场份额的关键策略。特别是对于出海业务而言,利用智能化营销技术来应对不同文化、语言和市场的挑战,已经成为企业竞争的关键优势。今天运营坛将带领大家探讨如何利用HubSpot CRM和人工…

JVM 重要知识梳理

一、java内存区域 程序计数器:线程私有,唯一一个不会出现outOfMemoryError的内存区域虚拟机栈:线程私有,栈由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法返回地址。本地方法…

Prompt Learning:人工智能的新篇章

开篇:AI的进化之旅 想象一下,你正在和一位智能助手对话,它不仅理解你的问题,还能提出引导性的问题帮助你更深入地思考。这正是prompt learning的魔力所在——它让机器学习模型变得更加智能和互动。在这篇博客中,我们将…

【JavaScript】面试手撕柯里化函数

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 引入柯里化定义实现快速使用柯里化的作用提高自由度bind函数 参考资料 引入 上周…

git区域与对象

大纲 工作区(workspace directory):本机的代码项目,是一种沙箱环境 暂存区(stage index):工作区在程序员写程序的过程中会发生无数次改动,git不可能记录每一次的改动,这些改动的过程在暂存区负责记录,暂存区会将最终的状态随着程序员的提交…

springboot与elasticsearch-7.16.2的基础CRUD使用——入门向

highlight: an-old-hope 基于elasticsearch-7.16.2 ,使用的是旧版的高级客户端 restHighLevelClient springboot版本2.6.13 项目原代码地址 https://gitee.com/kenwm/es7demo.git 参考博客 1、SpringBoot集成ElasticSearch,实现模糊查询,批…

学python新手如何安装pycharm;python小白如何安装pycharm

首先找到官网: Download PyCharm: The Python IDE for data science and web development by JetBrains 打开后选择下载,下图标红部分 点击exe程序,点击下一步! 选择安装路径,下一步 弹出界面全选 选择默认 然后直接…

Spring核心接口:BeanFactory接口

一图胜千言 BeanFactory 属性&方法解析 点击展开注意:以上代码仅供参考,可能存在不完整或不准确的情况。 public interface BeanFactory {// 根据Bean名称返回Bean实例。// 如果Bean不存在,则抛出NoSuchBeanDefinitionException异常。Obj…

华为机考:HJ43 迷宫问题

华为机考:HJ43 迷宫问题 描述 DFS 从迷宫入口开始进行dfs搜索,每次进入一个点,将其加入临时路径数组中,把该位改成0表示不能进入,然后依次搜索该位下、右、上、左四个方向的点,如果搜索的这个点可以进入则…

【机器学习智能硬件开发全解】(二)—— 政安晨:嵌入式系统基本素养【处理器原理】

嵌入式系统的基本素养包括以下几个方面: 硬件知识:嵌入式系统通常由硬件和软件组成,了解和熟悉硬件的基本知识,包括微处理器、存储器、外设等,并了解它们的工作原理和特性。 软件编程:熟悉至少一种编程语言…

STM32模拟I2C控制TM1650数码管显示电压电流

模拟I2C控制TM1650数码管显示电压电流 数码管的逻辑TM1650 原理模拟I2C的实现TM1650驱动电压电流显示 数码管的逻辑 通过数码管来表示字符。 数码管的abcdefg和dp分别对应这发送过去的8位数据位比如0x3F -> 0011 1111 表示0字符。 如果要加上小数点则在最高位加一&#xf…

同步整流芯片 支持12V降5V 24V降5V 24V降12V 降压芯片 H4122

惠海H4122降压恒压芯片的工作原理: 主要是通过内部电路和算法来控制和调节输出电压,使其保持恒定。 输入电压:芯片接收一个较高的输入电压,如12V、24V或36V。 开关电源转换器:芯片内部通常包含一个或多个开关电源转…

【python pyinstaller库】pyinstaller介绍、安装、以及相关重点知识

PyInstaller是一个在Windows、GNU/Linux、macOS等平台下将Python程序冻结(打包)为独立可执行文件的工具, 用于在未安装Python的平台上执行Python编写的应用程序。 相比类似工具,它的主要优点是 PyInstaller 与 Python 3.7-3.10 一起工作&…