Docker生存镜像和导入镜像文件(图文详解)

打印 上一主题 下一主题

主题 793|帖子 793|积分 2381

Docker生存镜像和导入镜像文件(图文详解)

Docker 生存和导入镜像文件是 Docker 镜像管理中的两个关键操纵,它们在差异的场景下有着各自的意义和用途。以下是对这两个操纵的详细阐明:
1 根本命令介绍

1.1 Docker 生存镜像(docker save)

命令格式:
  1. docker save -o <输出文件路径> <镜像名称>:<标签>
复制代码
意义与用途:


  • 归档与备份:docker save 命令用于将本地的 Docker 镜像导出为一个 tar 文件。这个文件包罗了镜像的所有层以及元数据,如标签、配置信息等。通过这种方式,可以对重要的镜像举行归档或备份,防止因为意外删除或体系故障导致的数据丢失。
  • 迁移与分发:当需要将镜像从一台呆板迁移到另一台呆板时,尤其是在没有直接网络连接的情况下,可以使用 docker save 将镜像导出为文件,然后通过其他方式(如USB驱动器、FTP传输等)将该文件复制到目标呆板上。这在离线环境中特别有用。
  • 版本控制:在某些情况下,你大概希望保存特定版本的镜像,以便在将来能够回滚到该版本。通过 docker save 可以创建这些版本的快照,确保任何时候都可以规复到某个已知的良好状态。
  • 审计与合规性:对于企业级应用,有时需要对使用的镜像举行审计或验证其泉源。通过生存镜像文件,可以在必要时检查镜像的内容,确保符合安全策略和法规要求。
1.2 Docker 导入镜像(docker load)

命令格式:
  1. docker load -i <输入文件路径>
复制代码
意义与用途:


  • 规复备份:docker load 命令用于将之前使用 docker save 创建的 tar 文件重新加载到 Docker 中,使其成为可用的镜像。这对于从备份中规复镜像非常有用,特别是在发生劫难规复时。
  • 接收迁移的镜像:当从其他呆板接收到镜像文件后,可以使用 docker load 将其导入本地 Docker 环境。这使得跨呆板或跨环境的镜像共享变得简朴易行。
  • 定制化镜像部署:假如你有一个经过特别定制的镜像,而且希望将其部署到多个环境中,可以通过 docker save 和 docker load 组合来实现。例如,在开发完成后,可以将开发环境中的镜像导出,然后在测试或生产环境中导入,从而包管各个环境的同等性。
  • 绕过镜像仓库限定:有时候,由于网络问题或者镜像仓库的访问权限限定,无法直接从远程仓库拉取镜像。此时,可以先在有访问权限的环境中获取镜像并生存为文件,再通过 docker load 在受限环境中导入镜像。
  • 私有镜像的安全分发:对于包罗敏感信息或专有技术的镜像,直接上传到公共镜像仓库大概存在安全风险。通过 docker save 和 docker load,可以在不公开镜像内容的前提下,安全地在受信托的互助伙伴之间分发镜像。
2 实际操纵演示

2.1 准备环境

两台Ubuntu22.04 Server服务器或假造机,此中一台IP地址为:192.168.88.171,一台IP地址为192.168.3.228,且同时两台都已经安装好了docker环境。
假设模仿只有IP为192.168.88.171的服务器可对外连接互联网,192.168.3.228的服务器不能连接互联网,只跟192.168.88.171互联组成局域网。
服务器地址网络情况-外网网络情况-内网实际操纵192.168.88.171允许允许通过互联网下载并生存mysql8.0.34镜像192.168.3.228否允许通过内网其他服务器镜像源导入mysql8.0.34镜像 2.2 互联网拉取镜像源

在192.168.88.171拉取mysql8.0.34镜像
  1. docker pull mysql:8.0.34
复制代码

查察当前docker的所有镜像源,可以看到已经下载了mysql8.0.34
  1. docker images
复制代码

2.3 生存镜像源

1.单个镜像生存
在 Docker 中,生存镜像的命令是 docker save。这个命令可以将一个或多个镜像生存到一个 tar 归档文件中。以下是如何使用该命令的根本语法:
  1. docker save -o <输出文件路径> <镜像名称>[:<标签>]
复制代码
生存192.168.88.171的mysql8.0.34镜像至根目录下的home文件夹
  1. docker save -o /home/mysql8.0.34.tar mysql:8.0.34
复制代码
进入home文件夹可以看到已经生存了mysql8.0.34.tar

2.多个镜像生存
查察当前镜像文件,例如我们需要生存nacos和mysql8镜像(生存到同一个tar文件)
  1. docker save -o /home/mysql_nacos_images.tar mysql:8.0.34 nacos/nacos-server:v2.1.1
复制代码

查察home目录下是否天生对应的tar文件

2.4 导入镜像源

1.镜像源传输
scp 是一种基于 SSH 的安全文件复制协议,适用于 Linux、macOS 和 Windows(通过 WSL 或 Git Bash 等工具)。
从源服务器传输到目标服务器:
在源服务器上执行以下命令:
  1. scp /path/to/nacos-server-v2.1.1.tar user@target-server:/path/to/destination/
复制代码


  • /path/to/nacos-server-v2.1.1.tar 是源服务器上的文件路径。
  • user 是目标服务器的用户名。
  • target-server 是目标服务器的 IP 地址或主机名。
  • /path/to/destination/ 是目标服务器上的生存路径。
在192.168.88.171服务器上执行传输文件mysql_nacos_images.tar至192.168.3.228上
  1. scp /home/mysql_nacos_images.tar root@192.168.3.228:/home/
复制代码
输入目标服务器对应的用户名密码后即可开始传输

传输完成后在192.168.3.228服务器上即可看到对应镜像源

2.导入镜像源
在192.168.3.228服务器上使用 docker load 命令来加载镜像文件。假如你有一个未压缩的 .tar 文件,可以运行以下命令:
  1. cd /home
  2. docker load -i mysql_nacos_images.tar
复制代码
加载完毕后,会表现已经导入nacos与mysql8

查察镜像源
  1. docker images
复制代码

至此所有的演示过程已经完成
注意事项



  • 镜像大小:生存的镜像文件大概会非常大,特别是当镜像包罗大量依赖项或数据时。因此,在导出和导入镜像时应考虑存储空间和传输带宽的问题。
  • 兼容性:固然 Docker 的镜像格式具有良好的向后兼容性,但在差异版本的 Docker 之间迁移镜像时,仍需注意大概存在的兼容性问题。
  • 镜像优化:为了淘汰镜像文件的体积,可以在构建镜像时采用多阶段构建、清理不必要的文件等方式来优化镜像,使导出的文件更小,便于管理和传输。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

拉不拉稀肚拉稀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表