LoginSignup
32
21

More than 5 years have passed since last update.

Docker初心者がイメージとリポジトリの違いが分からなくて混乱したこと

Last updated at Posted at 2017-04-12

あくまでも個人的な解釈です。
ご指摘などあればお願いします。

疑問

docker imagesを叩くとDockerイメージの一覧が表示されるけど、なぜイメージの列名がREPOSITORYなのか?
イメージとリポジトリは違うのか?

個人的な解釈

1. リポジトリとレジストリ

AWS ECRのRをリポジトリだと思い込んでいたので混乱。
レジストリは、コンテナイメージやリポジトリを格納・管理するところ(Docker Hub、AWS ECRなど)。

2. リポジトリとは

リポジトリは、名前は同じだがタグが異なるイメージの集合。
Gihubのリポジトリとタグをイメージするとわかりやすい。

3. イメージ名とは

イメージ名いうものがそもそもないのかもしれないが、あえて言うならばリポジトリ名 + タグ名がそれにあたりそう。
参考記事を見ると以下のようにあるので、タグの全表記がイメージ名ということになるのかも。

The full form of a tag is [REGISTRYHOST/][USERNAME/]NAME[:TAG]. For ubuntu above, REGISTRYHOST is inferred to be registry.hub.docker.com. So if you plan on storing your image called my-application in a registry at docker.example.com, you should tag that image docker.example.com/my-application.

あとは、レジストリ名とユーザー名がどちらも/で区切られる、かつ省略ができるところがわかりづらかった。
Docker Hubの場合、それが公式だからなのか分からないがレジストリ名は省略され、ユーザー名をつけるように書かれている。
しかし、AWS ECRの場合、プライベートなレジストリになるため、レジストリ名は必要だが、ユーザー名は省略しても良い。
ここを理解していなかったので、AWS ECRのリポジトリ名を見たときに、レジストリ名の部分を、Docker Hubのリポジトリ名と同様にユーザー名と見てしまい、混乱した。

疑問の答え

docker imagesを叩くとDockerイメージの一覧が表示されるけど、なぜイメージの列名がREPOSITORYなのか?

1列目に表示されるものがイメージ名だと思っていたので混乱していた。
イメージは、リポジトリ、タグ、イメージIDなどの情報から構成されていると言えるので、イメージ一覧を取得した場にはそれらの情報が取得できる。

参考

32
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
21