1. 概要

このチュートリアルでは、Dockerのタグの概念を学習します。

Dockerは、DockerHubリポジトリにイメージを保存するためのサポートを提供します。 Dockerタグは、Dockerイメージに一意のIDを提供します。 Dockerリポジトリ内のタグによって識別される異なるバージョンの類似したイメージのセットがあります。

ここでは、 dockerbuildおよびdockertagコマンドを使用してイメージにタグを付ける方法を学習します。

2. Dockerタグを理解する

Dockerタグは、ビルドバージョンを維持してイメージをDockerHubにプッシュするのに役立ちます 。 Docker Hubを使用すると、名前とタグに基づいてイメージをグループ化できます。 複数のDockerタグが特定のイメージを指すことができます。 基本的に、Gitと同様に、Dockerタグは特定のコミットに似ています。 Dockerタグは、イメージIDの単なるエイリアスです。

タグの名前はASCII文字列である必要があり、小文字と大文字、数字、アンダースコア、ピリオド、ダッシュを含めることができます。 また、タグ名はピリオドやダッシュで始めることはできず、128文字までしか含めることができません。

3. Dockerタグを使用してイメージを構築する

先に進む前に、まずサンプルのDockerfileを作成して、タグ付けを示します。

FROM centos:7
RUN yum -y install wget 
RUN yum -y install unzip 
RUN yum -y install java-1.8.0-openjdk 
RUN yum clean all
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME

上記のDockerfileでは、「centos:7」をベースイメージとして使用してjavaをインストールするために必要なすべてのコマンドを実行します。

3.1. 単一のDockerタグを使用してイメージを構築する

Dockerでは、ビルド時にイメージにタグを付けることができます。 説明のために、画像にタグを付けるコマンドを確認してみましょう。

$ docker build -t baeldung-java:5 .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM centos:7
 ---> eeb6ee3f44bd
Step 2/2 : RUN yum -y install wget
 ---> Using cache
 ---> 46ee47a7422d
Successfully built 46ee47a7422d
Successfully tagged baeldung-java:5

ここで、上記のコマンドでは、Dockerイメージのタグとして「 baeldung- java:5」を指定しました。 Dockerのタグは、ビルドのバージョンを維持してイメージをDockerHubにプッシュするのに役立ちます。バージョン管理は通常、Dockerイメージをデプロイするか、古いバージョンに戻すために使用されます。

以下の構文を使用して、タグにユーザー名と画像名を指定することもできます。

$ docker build -t baeldung/baeldung-java:5 .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM centos:7
 ---> eeb6ee3f44bd
....
Successfully built 46ee47a7422d
Successfully tagged baeldung/baeldung-java:5

ここで、上記のコマンドでは、ユーザー名「baeldung」に画像名「 baeldung- java 」、タグを「5」として指定しました。 「。

3.2. 複数のDockerタグを使用してイメージを構築する

Dockerでは、画像に複数のタグを割り当てることもできます。 ここでは、 Dockerビルド 1つのコマンドで複数のタグを画像に割り当てるコマンド。

実例を示すために、上記のDockerfileのコマンドを確認してみましょう。

$ docker build -t baeldung-java:5 -t baeldung-java:6 .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM centos:7
 ---> eeb6ee3f44bd
....
Successfully built 46ee47a7422d
Successfully tagged baeldung-java:5
Successfully tagged baeldung-java:6

ここでは、“ baeldung- java:5” “ baeldung- java:6”imageId“に対して作成されていることがわかります。 46ee47a7422d」。

3.3. タグなしで画像を作成する

タグを使用せずにDockerイメージを構築することもできます。ただし、イメージを追跡するために、常にイメージ名をタグに付ける必要があります。 タグなしでイメージを作成するコマンドを調べてみましょう。

$ docker build -t baeldung-java .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM centos:7
 ---> eeb6ee3f44bd
...
Successfully built 46ee47a7422d
Successfully tagged baeldung-java:latest

ここで、上記のコマンドでは、タグなしでイメージをビルドしたため、デフォルトでは、Dockerは最新の「 baeldung- java:latest」としてイメージにタグを提供します。

Dockerは常に、最新のタグを使用して最新の安定したリリースを指します。 古いリリースは最新と呼ぶこともできます。 しかし、それがメジャーバージョンかマイナーバージョンかを予測することはできません。

4. dockertagコマンドを使用して画像にタグを付ける

これまで、 dockerbuildコマンドを使用してイメージにタグを付ける方法について説明してきました。 ただし、 dockertagコマンドを使用して画像に明示的にタグを付けることもできます。 画像にタグを付けると、画像名またはimageIdのエイリアスが作成されます。 ここでは、画像にタグを付ける両方の方法について説明します。

Dockerイメージ名の一般的な形式は次のとおりです。

<user-name>/<image-name>:<tag-name>

上記のスニペットでは、コロンの後のコンポーネントは、画像に付けられたタグを示しています。

画像名を使用して画像にタグを付けるコマンドを調べてみましょう。

$ docker tag baeldung-java:6 baeldung-java:8 

imageIdを使用して画像にタグを付けるコマンドは次のとおりです。

$ docker tag 46ee47a7422d baeldung-java:9 

これまでに作成されたすべての画像を確認してみましょう。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
baeldung-java       5                   46ee47a7422d        13 minutes ago      370MB
baeldung-java       6                   46ee47a7422d        13 minutes ago      370MB
baeldung-java       8                   46ee47a7422d        13 minutes ago      370MB
baeldung-java       9                   46ee47a7422d        13 minutes ago      370MB
baeldung-java       latest              46ee47a7422d        13 minutes ago      370MB
centos              7                   eeb6ee3f44bd        7 months ago        204MB

ここでは、これまでに作成されたすべての画像を確認できます。

5. dockerpullコマンドでのタグの使用

Dockerタグは、イメージを作成したり、DockerHubリポジトリからイメージをプルしたりする場合に役立ちます。 Dockerfileでは、コマンド FROM centos:7を使用しました。これにより、centosパブリックイメージのバージョン「7」がプルされます。

タグ付きまたはタグなしで画像をプルすることもできます。

特定のタグを持つコマンドを調べてみましょう。

$ docker pull centos:7

タグなしのdockerpull コマンド:

$ docker pull centos

上記のコマンドは、パブリックDocker Hubリポジトリから「centos:latest」イメージをプルします。 通常、メジャーバージョンとマイナーバージョンを指定するために、画像に複数のタグを適用することもできます。

6. 結論

この記事では、Dockerでタグを作成および管理する方法を学びました。 画像にタグを付けるさまざまな方法を検討しました。

docker build コマンドを使用して、最初に画像にタグを付けました。 後で、 dockertagコマンドを調べました。 さらに、タグを使用して dockerpullコマンドを調べました。