Dockerタグを使ってイメージにバージョン管理を追加する方法 - TechRepublic

Dockerタグを使ってイメージにバージョン管理を追加する方法 - TechRepublic

Docker Hubから新しいイメージをプルダウンすると、関連するタグが表示される可能性があります。例えば、debianイメージをプルダウンすると、(docker pull debianを実行した後)次のように表示されます。

Using default tag: latest

そのタグは何を意味するのでしょうか?なぜ最新なのでしょうか?Dockerタグを使うことがなぜ重要なのか、そして「最新」が必ずしも最善の選択肢ではない理由を説明します。

参照: プロフェッショナル向け Docker: 実践ガイド (TechRepublic Academy)

Docker タグとは何ですか?

Dockerタグはファイルタグとは異なります。ファイルタグを使用すると、ファイルに複数のキーワードを割り当てることができます。例えば、「linux」を検索すると、そのキーワードでタグ付けされたすべてのファイルが表示されます。しかし、Dockerタグはそのような用途には使用しません。代わりに、イメージにタグを付けることで、より明確な情報を提供します。

例えば、UbuntuのイメージをDocker Hubにタグ付けせずにアップロードしたとします。これは、Canonicalの「Ubuntuをダウンロード」ボタンがubuntu.isoファイルに直接リンクしているのと同じようなもので、ダウンロードするUbuntuのバージョンが全く分かりません。.04リリースなのか、それとも.10リリースなのか、そもそも最新版なのか、全く分かりません。そのため、Ubuntuのファイルにはubuntu-16.04.1-server-amd64.isoのようなラベルが付けられていることが多く、ダウンロードするファイルの内容が正確に分かるようになっています。

Docker タグは、ダウンロード ファイルの 16.0.1-server-amd64 セクションのようなもので、リポジトリからダウンロードするイメージを正確に示します。

画像にタグを追加する方法

Docker 開発者が必要なツールを docker コマンドに組み込んでいるため、イメージにタグを追加するのは非常に簡単です。

例えば、Ubuntuイメージをまさに必要なものに合わせて改造したとします。このUbuntuイメージは開発用で、バージョン1、リリース日は6月14日だとします。この情報に基づいて動作するタグ付けシステムを作成しましょう。例えば、次のようなタグを使用できます。

dev:v1.6.14

これは、バージョン管理システムを理解している人にとっては、これが6月14日に作成されたバージョン1であることを示します。しかし、バージョン管理システムを理解していない人にとっては問題が発生する可能性があります。次のようにすれば、もう少しわかりやすくなります。

dev:v1.6.14.2017

上記は米国の日付表記法を前提としているため、その場合でも問題が発生する可能性がありますが、要点は説明できます。

画像にはどのようにタグを付けますか?ここでは上記の2番目のオプションを使うことにします。画像にタグを付けるコマンドは以下のとおりです。

docker tag IMAGE ID image/TAG

IMAGE IDは、イメージの12文字の識別文字列(Docker imagesコマンドで取得)です。TAGは新しく作成したバージョンタグです。つまり、Ubuntuイメージにタグを付けるコマンドは次のようになります。

docker tag 7b9b13f7b9c0 ubuntu/dev:v1.6.14.2017

Docker imagesコマンドを発行するとどのようになるかを示すために、Ubuntu イメージに上記の両方の規則のタグを付けました(図 A )。

図A

上記の規約では、ubuntu/dev というリポジトリを作成し、イメージに v1.6.14.2017 というタグを付けています。これを拡張して、イメージをプルするユーザー向けに、以下のようなリポジトリ規約を作成できます。

  • http:v1.6.14.2017
  • 秒:v1.6.14.2017
  • テスト:v1.6.14.2017

リストは必要なものを何でも追加できます。ここで重要なのは、具体性です。「最新」というタグを追加することは重要ですが、特にあなたの影響力の及ばない人にとって、それは具体的に何を意味するのでしょうか?

コミット、タグ付け、プッシュ

イメージをプッシュする場合は、変更内容をコミットし(コミット時にタグを付け)、その後イメージをプッシュする必要があります。タグを付けるコミットコマンドの例は以下のとおりです(HUBUSERはDocker Hubのユーザー名です)。

docker commit -m "Updated Ubuntu" -a "Jack Wallen" ubuntu-testing-June HUBUSER/ubuntu_testing:v1.6.14.2017

次に、次のコマンドを使用してイメージを Docker Hub アカウントにプッシュします。

docker login
​docker push HUBUSER/ubuntu_testing

画像が表示され、タグ情報を確認することができます (図 B )。

図B

タグ付けされたイメージをプルするには、次のコマンドを発行します。

docker pull HUBUSER/ubuntu_testing:v1.6.14.2017

具体的に

Dockerタグは、より具体的なタグを付けるほど効果的です。スタッフや他のDockerユーザーがあなたのアカウントからイメージをダウンロードした際に、そのイメージが何なのか、いつ作成されたのかが全く分からなくなるのは避けたいものです。こうした問題を避けるためにも、タグを具体的なタグにしましょう。

Tagged: