What is the difference between an image and a repository?

前端 未结 5 1569
既然无缘
既然无缘 2021-01-31 08:30

I am brand new to Docker and following the Getting Started tutorial. At step 7 it says

type docker images command and press RETURN. The comma

5条回答
  •  余生分开走
    2021-01-31 08:49

    Yes, this is very confusing terminology.

    Simplest answer:

    Image: a single image.

    Repository: a collection of images.

    Details:

    Image: Uniquely referenced by the Image ID, the 12 digit hex code (e.g. 91c95931e552). [1]

    Repository: Contains one or more images. So the hello-world repository could contain two different images: 91c95931e552 and 1234abcd5678.

    Image alias - I'm going to define image alias to mean an alias that references a specific image. The format of an image alias is repository:tag. This way, you can use a human-friendly alias such as hello-world:latest instead of the 12-digit code.

    Example:

    Let's say I have these images:

    REPOSITORY           TAG         IMAGE ID
    docker/whalesay      latest      fb434121fc77
    hello-world          latest      91c95931e552
    hello-world          v1.1        91c95931e552
    hello-world          v1.0        1234abcd5678
    

    The repositories are: docker/whalesay, hello-world.

    The images are fb434121fc77, 91c95931e552, 1234abcd5678. Notice that the 2nd and 3rd rows have the same Image ID, so they are the same image.

    The image aliases are:

    docker/whalesay:latest
    hello-world:latest
    hello-world:v1.1
    hello-world:v1.0
    

    So hello-world:latest and hello-world:v1.1 are simply two aliases for the same image.

    Additional Details:

    • Repository name format can also prepend an optional user or namespace, which is useful when using a public registry like Docker Hub. E.g. docker/whalesay. Otherwise, you will have a lot of repository name conflicts.

    • If you leave out the tag when referencing an image alias, it will automatically add :latest. So when you specify hello-world, it will be interpreted as hello-world:latest. Warning: latest doesn't actually mean anything special, it's just a default tag.

    • [1] Actually, the full Image ID is a 64 digit hex code truncated to 12 digits, but you don't need to care about that.

提交回复
热议问题