守护进程加载共享图层的多个Docker映像时的顺序

时间:2018-10-19 16:07:33

标签: docker containers

如果我有一个bash脚本可以加载三个docker镜像A,B和C,请说。三个docker load & push命令在后台进程大约同时启动:

for $image in {img_A,img_B, img_C}: do
    (docker load $image
     docker push $image
    ) &
done

如果这三个图像具有多个共享层,例如:
-A的结构为:Shared_ABC_1, Shared_AC_2, Unique_A3 ....
-B的结构为:Shared_ABC_1, Unique_B2, Unique_B3 ....
-C的结构为:Shared_ABC_1, Shared_AC_2, Unique_C3 ....

其中Shared_ABC_1在所有A,B和C图像中均作为第一层存在。 Shared_AC_2在A和C图像中作为第二层存在。 Unique层所在的层仅存在于相应的图像中。

循环语句中的&创建了几个在后台运行的分支进程。假设图像A的子外壳在t = 0.01s处开始,图像B在t = 0.02s处开始,图像C在t = 0.03s处开始。

我的问题是:当守护进程在t = 0.01s接收到加载图像A的请求时,它已经知道要为A加载的图层。然后,当B和C的加载和推送请求稍后出现时,它会注意到A,B,C共享一些公共层,现在,Daemon会再次加载shared_ABC_1层吗?还是它将首先开始加载Unique_B2,然后等到shared_ABC_1完成加载,然后在A,B和C上使用共享层?

0 个答案:

没有答案