Docker
docker restart 是使用最新的鏡像還是容器創建時使用的鏡像?
如果我使用標籤/標籤創建容器
docker run --name some_container -d me/my_image
更新圖像
docker pull me/my_image
並重新啟動容器
docker restart some_container
新容器使用哪個版本?
in
docker inspect
.Image
給出特定圖像的 id,.Config.Image
給出標籤。
它使用創建容器的圖像。這很容易驗證。
讓我們看一下過期圖像的圖像 ID:
$ docker images alpine:3.2 REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE alpine 3.2 137f13b3ac76 8 seconds ago 5.254 MB
很酷,現在讓我們根據該圖像創建一個容器:
$ docker create --name test alpine:3.2 sh 1011a97c6ed5dc0249eedc133d4f98197b379a40acc43d74f212a3d49f49db09
我們可以看到容器基於的圖像:
$ docker inspect -f '{{.Image}}' test 137f13b3ac76e253a90cc952c2b5921c41de0f56e8a5833e96f63e6f0c94f228
現在我們拉一個更新的
alpine:3.2
:$ docker pull alpine:3.2 3.2: Pulling from library/alpine Digest: sha256:1b42caf22e8a6c00e4e7f8c0274495b815336d549317cf694e274832aecf11ed Status: Image is up to date for alpine:3.2
看到它有一個新的圖像 ID:
$ docker images alpine:3.2 REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE alpine 3.2 74e49af2062e 3 days ago 5.254 MB
但容器仍在使用舊圖像 ID:
$ docker inspect -f '{{.Image}}' test 137f13b3ac76e253a90cc952c2b5921c41de0f56e8a5833e96f63e6f0c94f228
當您查看圖像時,您可以看到新的和舊的懸空的:
$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE <none> <none> 137f13b3ac76 51 seconds ago 5.254 MB alpine 3.2 74e49af2062e 3 days ago 5.254 MB
如果您嘗試刪除舊圖像,您將遇到錯誤:
$ docker rmi 137f13b3ac76 Error response from daemon: conflict: unable to delete 137f13b3ac76 (must be forced) - image is being used by stopped container 1011a97c6ed5 Error: failed to remove images: [137f13b3ac76]
一旦基於它的容器被刪除,圖像就可以被刪除。