リポジトリ
読む時間の目安: 2 分
Docker Hub リポジトリは、開発チーム、顧客、Docker コミュニティ全般に対してコンテナーの共有を可能にします。
Docker イメージは Docker Hub に対して docker push
コマンドを使ってプッシュします。
1 つの Docker Hub リポジトリ内には複数の Docker イメージを含めることができます(タグを使って保存します)。
リポジトリの生成
リポジトリを生成するには Docker Hub にサインインして、Repositories をクリックし、さらに Create Repository をクリックします。
リポジトリの新規生成時には以下を行います。
- リポジトリを Docker ID 名前空間に含めるか、自身が 所有者 となっている 組織 に含めるかを選びます。
-
リポジトリ名は、これが属する名前空間内においてユニークである必要があります。 文字数は 2 文字以上 255 文字までです。 利用できる文字は、英小文字、数字、ハイフン(
-
)、アンダースコア(_
)です。メモ
Docker Hub のリポジトリを一度生成した後は、名称変更することはできません。
- 内容説明を 100 文字以内で記述できます。 これは検索を行った際に、結果として表示されます。
- この場ですぐに GitHub や Bitbucket のアカウントにリンクさせることができます。 またはリポジトリ設定において、後で行うこともできます。
Create ボタンをクリックした後は、docker push
を利用してこのリポジトリに対してイメージをプッシュしていくことができます。
リポジトリの削除
-
Docker Hub にサインインして Repositories をクリックします。
-
一覧の中からリポジトリを 1 つ選択して、Settings をクリックし Delete Repository を行います。
メモ
リポジトリの削除を行うと、そこに含まれていたイメージやビルド設定はすべて失われます。 この操作は取り消すことはできません。
- 確認のためリポジトリ名を入力し、Delete をクリックします。
Docker コンテナーイメージの Docker Hub へのプッシュ
Docker Hub にイメージをプッシュするには、Docker Hub のユーザー名と、ウェブ画面を通じて Docker Hub 上に生成したリポジトリ名を使って、まずはローカルイメージに名前をつける必要があります。
リポジトリへは複数のイメージを追加することができます。
これにはイメージに対して、特定の:<tag>
というものを加えます。
これが指定されていない場合、タグのデフォルト名はlatest
になります。
ローカルイメージに名前をつけるには、以下の 3 つの方法の中から選びます。
- イメージをビルドする際に
docker build -t <hub-user>/<repo-name>[:<tag>]
を実行します。 - ローカルイメージに改めてタグをつける
docker tag <existing-image> <hub-user>/<repo-name>[:<tag>]
を実行します。 docker commit <existing-container> <hub-user>/<repo-name>[:<tag>]
を実行して変更をコミットします。
そこでこのリポジトリを、名前およびタグによって指定されるレジストリへプッシュします。
$ docker push <hub-user>/<repo-name>:<tag>
イメージがアップロードされて、チームメンバーやコミュニティが利用できるようになりました。
プライベートリポジトリ
プライベートリポジトリは、コンテナーイメージをプライベートなものにします。 これは自身のアカウントだけでなく、組織やチーム内においてもプライベートなものになります。
プライベートリポジトリを生成するには、リポジトリ生成の操作時に Private を選びます。
Settings タブにおいては、既存のリポジトリをプライベートに変更することもできます。
Docker Hub ユーザーアカウントに対して、プライベートリポジトリは無償で 1 つだけ生成することができます。 (メンバーとして所属している組織からは利用できません。) ユーザーアカウントにおいて、これ以上のプライベートリポジトリを必要とする場合は、有料プランの情報 ページから Docker Hub プランをアップグレードすることが必要になります。
プライベートリポジトリが生成できたら、Docker を使ってイメージのpush
やpull
を行うことができます。
メモ プライベートリポジトリにアクセスして操作を行っていくには、サインインしておくことが必要です。
メモ プライベートリポジトリは今のところ、トップレベルの検索、つまり
docker search
を利用した検索は利用できません。
プライベートリポジトリでは、協力者(collaborator)を設定して、リポジトリへのアクセスを管理することができます。 これはリポジトリの Settings ページから行います。 またリポジトリの状態は、利用可能なスロット数があれば、パブリックとプライベートの間で切り替えることもできます。 スロット数が足りない場合、Docker Hub プランをアップグレードすることができます。
協力者とその役割
協力者(collaborator)とは、プライベートリポジトリへのアクセスを許可する他ユーザーのことです。
これを設定すると、協力者もリポジトリに対してpush
とpull
ができるようになります。
ただし協力者になったからといって、リポジトリを削除したり、プライベートリポジトリをパブリックに変更したり、といった管理操作を行うことはできません。
メモ
協力者が他の協力者を追加することはできません。 管理操作が可能なのは、あくまでそのリポジトリの所有者のみです。
組織やチームを利用すれば、Docker Hub での協力者の権限は、さらに細かく割り当てることもできます(「Read」、「Write」、「Admin」)。 詳しくは 組織のドキュメント を参照してください。
リポジトリのタグ参照
Docker Hub の個々のリポジトリ画面では、利用可能なタグと、関連イメージのサイズが表示されます。 Repositories 画面にアクセスして、1 つのリポジトリをクリックし、タグを確認してください。
イメージサイズは、そのイメージと親イメージによって占有される合計サイズです。
これはまた、docker save
によりイメージを生成した際の.tar
ファイルのディスク容量でもあります。
個々のタグを確認するには Tags タブを開きます。
イメージに対するプッシュ、プルの操作が 1 ヶ月以上なかったら、そのイメージは古いものとみなされます。 たとえば以下のようなものです。
- 1 ヶ月以上、プル操作が行われていない。
- 1 ヶ月以上、プッシュ操作が行われていない。
マルチアーキテクチャーのイメージの場合は、そのマニフェストにある一つずつのアーキテクチャーイメージがすべて古くなった場合に、古いものとみなされます。
タグを削除するには、対応するチェックボックスを選択して Action ドロップダウンリストから Delete を選択します。
メモ
リポジトリに対してタグの削除が可能なのは、管理者権限を持つユーザー(所有者まはた管理者権限を持つチームメンバー)のみです。
タグのダイジェスト値をクリックして、タグの詳細を確認します。
リポジトリの検索
Docker Hub レジストリに対しては、検索画面やコマンドラインインターフェースを利用して検索することができます。 検索では、イメージ名、ユーザー名、内容説明を使ってイメージを検索します。
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 1034 [OK]
ansible/centos7-ansible Ansible on Centos7 43 [OK]
tutum/centos Centos image with SSH access. For the root... 13 [OK]
...
上の検索によると、検索結果としてcentos
とansible/centos7-ansible
という 2 つがあります。
2 つめの結果は、パブリックリポジトリにある、ユーザーansible/
によるイメージを表わしています。
一方 1 つめであるcentos
はリポジトリが表示されていません。
これは Docker 公式イメージ によるトップレベルの名前空間からきていることを表わします。
なお/
は、ユーザーのリポジトリ名とイメージ名を区切るものです。
検索したいイメージが見つかったら、docker pull <イメージ名>
を実行してダウンロードします。
$ docker pull centos
latest: Pulling from centos
6941bfcbbfca: Pull complete
41459f052977: Pull complete
fd44297e2ddb: Already exists
centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:d601d3b928eb2954653c59e65862aabb31edefa868bd5148a41fa45004c12288
Status: Downloaded newer image for centos:latest
イメージが取得できたので、ここからコンテナーを実行することができます。
リポジトリへの星マークづけ
リポジトリは他の方から星マークをつけてもらうことがあり、逆に他のリポジトリへ星マークをつけることができます。 星マークをつけるのは、好きなリポジトリが何かを公開する方法として使えます。 またお気に入りのリポジトリをブックマークしておくということもできます。
Docker, docker, trusted, registry, accounts, plans, Dockerfile, Docker Hub, webhooks, docs, documentation