user5479362
user5479362

Reputation:

Docker pull - force download

Is there a possibility to force pull of docker image?

I have redeployed docker image to another repository, but when I invoke

docker pull anotherrepo:port/my/image

nothing gets downloaded, instead I get info:

Digest: sha256:somehash

and that image is up to date.

docker rm/rmi doesn't work because the image is downloaded from originalrepo:port/my/image and I don't want to stop/delete it onyl for test purposes.

Is there possible to force pull to check if the image is correctly pushed?

Upvotes: 27

Views: 84637

Answers (3)

FelixJongleur42
FelixJongleur42

Reputation: 950

If you are using Docker Compose, a "docker compose pull" will automatically do what you want, see https://stackoverflow.com/a/39127792/1747140

Upvotes: 3

vimal-k
vimal-k

Reputation: 293

I think the answer lies in digests.

Images that use the v2 or later format have a content-addressable identifier called a digest. As long as the input used to generate the image is unchanged, the digest value is predictable.

Source: https://docs.docker.com/engine/reference/commandline/images/#list-the-full-length-image-ids

Maybe you don't need to verify if the push was successful, as Docker could be doing that automatically by using digests, but I'm not sure if this is indeed the case.

The only other way I can think of would be to pull from a different machine which has access to the new repository.

Upvotes: 0

Maximilian Mordig
Maximilian Mordig

Reputation: 1399

The following should work. You add a temporary tag to avoid deletion of the image, delete the original tag and then pull:

docker tag "$originalTag" "tmpTag"
docker rmi "$originalTag"
docker pull "$originalTag"
docker rmi "tmpTag"

Upvotes: 15

Related Questions