1

我的应用程序在 Docker 容器中运行,并且我在其中使用离线部署

  1. docker save我的开发机器上的图像并将其与应用程序捆绑在一起
  2. 通过 U 盘手动传输 tarfile 包和我的应用程序
  3. docker load它在目标机器上(目标未连接到网络)

步骤 1 和 3 由 BASH 脚本 (Linux) 执行。

应用程序更新通常不需要更新 Docker 映像,并且由于docker save非常docker load缓慢且资源密集,我希望尽可能避免这些步骤。

有没有办法找出tar'ed 图像是否等于IMAGE:TAG我的 Docker 守护程序上的图像?

我已经尝试skopeo inspect docker-archive:...docker image inspect ...输出进行比较,但似乎没有要比较的图像 ID。docker save我已经看到 RootFS 层是平等的,但这是我可以跳过/的有力保证docker load吗?

4

1 回答 1

0

docker 直到现在还不支持该功能,但我使用 bash 解决了一个类似的问题来“破解它”

我做了什么:

  1. 我将一个 docker 图像(例如“mymongo:latests”)保存到一个 tar 文件中,我们称之为 x.tar

  2. 我自动运行我的脚本并从 tar 中提取文件“存储库”3,该文件实际上包含一个类似 json 的文件

    {"mymongo":{"latest":"someId"}}

  3. 将其解析为 json,因为 myMongo 是图像,而 latest 是标签

在此处输入图像描述

于 2020-08-10T07:12:53.543 回答