Он использует изображение, из которого был создан контейнер. Это довольно легко проверить.
Давайте взглянем на идентификатор изображения для устаревшего изображения:
$ 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]
Изображение может быть удалено, как только контейнер, основанный на нем, будет удален.