Последовательность, когда Daemon загружает несколько изображений докера с общими слоями - PullRequest
0 голосов
/ 19 октября 2018

Скажите, если у меня есть скрипт bash, который загружает три образа докера 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 существует в качестве 1-го слоя на всех изображениях A, B и C,Shared_AC_2 существует как 2-й слой на изображениях A и C.Где слои Unique являются слоями, существуют только в соответствующем изображении.

& в операторах цикла создает несколько разветвленных процессов, работающих в фоновом режиме.Предполагая, что подоболочка для изображения A начинается в момент времени t = 0,01 с, изображение B начинается в момент времени t = 0,02 с, изображение C начинается в момент времени t = 0,03 с.

Мой вопрос таков: когда демон получил запрос на загрузку изображения Aв момент времени t = 0,01 с он уже знает, какие слои должны быть загружены для A. Затем, когда позже появится запрос на загрузку и отправку для B и C, он заметит, что A, B, C совместно используют некоторые общие слои, теперь будет Daemon.загрузить слой shared_ABC_1 снова?Или он сначала начнет загружать Unique_B2 и просто подождет, пока shared_ABC_1 не завершит загрузку, а затем использует общий доступ к слою по A, B и C?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...