コマンドラインで “Docker Hub” にアップロード済みのDocker Repositoryを削除する方法
はじめに
無料でDockerイメージを公開できるサービス Docker Hub はなくてはならないサービスですね。
昨年 自動ビルド機能が暗号通貨マイニングに悪用され廃止 となってしまったにもかかわらず、
無料でDockerイメージを公開するリポジトリとしての地位はゆるぎません。
"Github Action" なり "CircleCI" なり "GCP Cloud Build" なりを使ってビルドしたイメージを打ち上げる先として未だに使い続けています。
自分のPCでビルドしたイメージをアップロードするためにも利用していますが、不要になったDocker リポジトリを削除したいと思いました。
その際に実行した、コマンドラインから削除するための方法を紹介します。
検証環境
$ uname -moi
x86_64 MacBookPro16,1 Darwin
$ bash -version | head -n 1
GNU bash, バージョン 5.1.16(1)-release (x86_64-apple-darwin21.1.0)
"Docker Hub" のDocker Repository を操作するためのツール "hub-tool"
"Docker Hub" のDocker Repository をコマンドラインから操作する場合は、 "hub-tool" というツールを利用します。
過去のエントリ (“hub-tool"を使って"Docker Hub"上のイメージタグを一覧表示する) でも紹介しました。
今回のエントリも、 hub-tool
コマンドがすでにインストールされていることを前提とします。
インストールされていない場合は、インストールしておきましょう。
# インストールされているかを確認 ( メッセージが気持ち悪い )
$ hub-tool --version
Docker Hub Tool unknown, build unknown
hub-tool
を使って "Docker Hub" 上の Docker Repository を削除
それでは hub-tool
を使って、不要な Docker Repository を削除してみましょう。
hub-tool
は git
コマンドのように、サブコマンドを指定して使います。
# サブコマンド無しで実行し、ヘルプを表示させてみる
$ hub-tool
A tool to manage your Docker Hub images
Usage:
hub-tool
hub-tool [command]
Available Commands:
account Manage your account
help Help about any command
login Login to the Hub
logout Logout of the Hub
org Manage organizations
repo Manage repositories
tag Manage tags
token Manage Personal Access Tokens
version Version information about this tool
Flags:
-h, --help help for hub-tool
--verbose Print logs
--version Display the version of this tool
Use "hub-tool [command] --help" for more information about a command.
リポジトリを操作するためのサブコマンドは repo
です。
# 引数を指定せずに repo サブコマンドを実行し、ヘルプを表示させてみる
$ hub-tool repo
Manage repositories
Usage:
hub-tool repo
hub-tool repo [command]
Available Commands:
ls List all the repositories from your account or an organization
rm Delete a repository
Flags:
-h, --help help for repo
Global Flags:
--verbose Print logs
Use "hub-tool repo [command] --help" for more information about a command.
hub-tool repo ls
コマンドでDocker Repositoryを確認し、hub-tool repo rm
コマンドでDocker Repositoryを削除します。
$ hub-tool repo ls
REPOSITORY DESCRIPTION LAST UPDATE PULLS STARS PRIVATE
genzouw/hello 3 minutes ago 2 0 false
genzouw/centos-sandbox 6 months ago 188 0 false
genzouw/ubuntu-sandbox 0 0 false
...
たくさん表示されましたが、ここでは genzouw/hello というDocker Repositoryを削除したいと思います。
# grep で絞り込んで確認
$ hub-tool repo ls | grep hello
hellogenzouw/hello 3 minutes ago 2 0 false
削除を実行します。
$ hub-tool repo rm genzouw/hello
WARNING: You are about to permanently delete repository "genzouw/hello" including 1 tag(s)
This action is irreversible
Enter the name of the repository to confirm deletion: genzouw/hello
削除前の確認として、「リポジトリ名を入力してね」と言われましたが面倒なので 強制削除オプションが無いか 確認してみます。
$ hub-tool repo rm --help
Delete a repository
Usage:
hub-tool repo rm [OPTIONS] REPOSITORY
Flags:
-f, --force Force deletion of the repository
-h, --help help for rm
--force
オプションがありましたので、こちらを付与しましょう。
$ hub-tool repo rm genzouw/hello --force
Deleted genzouw/hello
さようならDocker Repository。
削除されたか確認してみます。
$ hub-tool repo ls
REPOSITORY DESCRIPTION LAST UPDATE PULLS STARS PRIVATE
genzouw/centos-sandbox 6 months ago 188 0 false
genzouw/ubuntu-sandbox 0 0 false
genzouw/sqlite 8 months ago 154 0 false
...
$ hub-tool repo ls | grep hello
ひとこと
まとめると、
hub-tool
ツールをインストールhub-tool repo rm --force <REPO_NAME>
コマンドでリポジトリを削除 (--force
はお好みで )hub-tool repo ls
コマンドでリポジトリを確認
という流れで削除できます。
ディスカッション
コメント一覧
まだ、コメントがありません