LoginSignup
2

More than 5 years have passed since last update.

Dockerイメージ/コンテナの識別子多すぎません?

Last updated at Posted at 2015-11-20

識別子多すぎません?

イメージにせよコンテナにせよ、識別子の種類がちょっと多すぎる気がしなくもない。

イメージ

Repository

名前にあたる、のか。スラッシュで区切られている場合は前半がユーザー名や管理者名、後半がイメージ名という扱いになる。レポジトリってなんのレポジトリだよと言うと、Docker Hubの、とか、立ててる場合ではプライベートの、ということになる。実際 docker push する際はここでレポジトリが判断される。

Tag

同一Repositoryでも例えばOSバージョン違いなどがあり、Tagで識別される。例えばdocker.io/centosのタグ7.1であれば、docker.io/centos:7.1と表記される。Tagを指定せず、Repositoryだけでイメージを指定した場合は、デフォルトではlatestが選ばれる。

なお docker tag といういかにもタグを変更できそうなコマンドがあるが、実際のところこのコマンドではレポジトリ名も変更できる。

$ docker tag 7d9495d03763 maryatdocker/docker-whale:latest
# 公式docs https://docs.docker.com/mac/step_six/ から抜粋

ID

ローカルでイメージを識別するためのユニークID。当然ながら一意にイメージを指定できるが、覚えにくいし打ちにくい。

コンテナ

ID

イメージと同様のユニークID。やはり人間にやさしいものではない。

Name

こちらもユニークに付けられるものだが、人間が読みやすい文字列になっている。自動でランダムに無意味な文字列が付与されるが、docker run --name="foobar"で任意の名前を持たせることも可能。コンテナ操作系のコマンド(start/stop/attach等)にはNameを渡すことができるので、基本的には手動でつけた方がいい。

面白いけど意味のあるような意味のない不思議な名前が付くので、どういう生成してんだろなと調べようとしたら先駆者がいらっしゃった。

結論

  • イメージは repository:tag で一意に指定。
  • コンテナはNameを付けてNameで指定。

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
2