هل تستخدم إعادة تشغيل عامل الميناء أحدث صورة أو الصورة التي تم إنشاء الحاوية بها?

إذا قمت بإنشاء حاوية باستخدام علامة / تسمية

docker run --name some_container -d me/my_image

تحديث الصورة مع

docker pull me/my_image

وإعادة تشغيل الحاوية مع

docker restart some_container

أي إصدار يستخدم الحاوية الجديدة?

في docker inspect .Image يعطي معرف الصورة المحددة, .Config.Image يعطي التسمية.

يستخدم الصورة التي تم إنشاء الحاوية منها. من السهل جدا التحقق من ذلك.

دعنا نلقي نظرة على معرف الصورة لصورة قديمة:

$ docker images alpine:3.2                 REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZEalpine              3.2                 137f13b3ac76        8 seconds ago       5.254 MB

رائع ، يتيح الآن إنشاء حاوية تستند إلى تلك الصورة:

$ docker create --name test alpine:3.2 sh1011a97c6ed5dc0249eedc133d4f98197b379a40acc43d74f212a3d49f49db09

يمكننا أن نرى الصورة التي تستند إليها الحاوية:

$ docker inspect -f '{{.Image}}' test    137f13b3ac76e253a90cc952c2b5921c41de0f56e8a5833e96f63e6f0c94f228

الآن نحن سحب محدثة alpine:3.2:

$ docker pull alpine:3.23.2: Pulling from library/alpineDigest: sha256:1b42caf22e8a6c00e4e7f8c0274495b815336d549317cf694e274832aecf11edStatus: Image is up to date for alpine:3.2

تأكد من أنه يحتوي على معرف صورة جديد:

$ docker images alpine:3.2                 REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZEalpine              3.2                 74e49af2062e        3 days ago          5.254 MB

لكن الحاوية لا تزال تستخدم معرف الصورة الأقدم:

$ docker inspect -f '{{.Image}}' test137f13b3ac76e253a90cc952c2b5921c41de0f56e8a5833e96f63e6f0c94f228

عند التحقق من الصور يمكنك ان ترى واحدة جديدة والقديمة التعلق واحد:

$ docker imagesREPOSITORY         TAG                  IMAGE ID            CREATED             VIRTUAL SIZE<none>             <none>               137f13b3ac76        51 seconds ago      5.254 MBalpine             3.2                  74e49af2062e        3 days ago          5.254 MB

إذا حاولت حذف الصورة القديمة ، فسيتم مقابلتك بخطأ:

$ docker rmi 137f13b3ac76Error response from daemon: conflict: unable to delete 137f13b3ac76 (must be forced) - image is being used by stopped container 1011a97c6ed5Error: failed to remove images: [137f13b3ac76]

يمكن حذف الصورة بمجرد إزالة الحاوية القائمة عليها.

[عدل] كنت مخطئا. ستستخدم الحاوية الصورة السابقة حتى نعيد تشغيلها.

نحتاج إلى حذف الحاوية وإعادة إنشائها من نفس العلامة لاستخدام المراجعة الجديدة للصورة.