コマンドラインから”Docker Hub”のDockerイメージを検索し詳細ページを開くスクリプト
はじめに
Docker Hub からDockerイメージを検索するためのコマンドとして、 docker search
コマンドが利用できます。
ただ、実際に便利なイメージが見つかったとしても利用する際には詳細ページを閲覧し、カスタマイズするための環境変数を確認したり、エントリポイントとなるコマンドのオプションを確認したりすることが多いです。
そこで、 docker search
を実行しつつ、検索上位リポジトリの詳細ページをブラウザで開くようにしてみました。
検証環境
$ uname -moi
x86_64 MacBookPro11,4 Darwin
$ bash -version | head -n 1
GNU bash, バージョン 5.0.9(1)-release (x86_64-apple-darwin18.6.0)
必要なもの
- Docker(
docker search
コマンドを使いたいため) - Chromeブラウザ
作成したスクリプト
"dockerhub" というスクリプトファイル名で保存します。
#!/usr/bin/env bash
set -o errexit
set -o nounset
declare -r KEYWORD="${1}"
declare -r SELECTED_ROW_COUNT="${2:-1}"
TMP=$(mktemp)
# 標準出力と同時に一時ファイルにヘッダ行を除去して書き出しておく
docker search "${KEYWORD}" \
| tee >(sed '1d' >"${TMP}")
# 指定された数分、検索上位のリポジトリをブラウザで開く
[[ $(cat "${TMP}" | wc -l) -ge ${SELECTED_ROW_COUNT} ]] && {
cat "${TMP}" \
| sed -n "1,${SELECTED_ROW_COUNT}p" \
| awk '{ print $1 }' \
| sed 's@^[^/]\+$@library/\0@' \
| xargs -n 1 -I{} open "https://hub.docker.com/r/{}"
}
以下はGistのコード(AMPページに対応できないので、GistのScriptは使っていません)
https://gist.github.com/genzouw/bdfa5f467f4feaaf089dba30fe4c824d#file-dockerhub
使い方
# 通常の `docker search` コマンドと同様の結果が出力された後、トップの検索結果リポジトリの詳細ページが開かれます。
$ dockerhub httpd
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
httpd The Apache HTTP Server Project 2603 [OK]
centos/httpd 23 [OK]
centos/httpd-24-centos7 Platform for running Apache httpd 2.4 or bui… 22
armhf/httpd The Apache HTTP Server Project 8
polinux/httpd-php Apache with PHP in Docker (Supervisor, CentO… 3 [OK]
salim1983hoop/httpd24 Dockerfile running apache config 2 [OK]
lead4good/httpd-fpm httpd server which connects via fcgi proxy h… 1 [OK]
rgielen/httpd-image-simple Docker image for simple Apache httpd based o… 1 [OK]
manageiq/httpd_configmap_generator Httpd Configmap Generator 0 [OK]
dockerpinata/httpd 0
manasip/httpd 0
interlutions/httpd httpd docker image with debian-based config … 0 [OK]
publici/httpd httpd:latest 0 [OK]
izdock/httpd Production ready Apache HTTPD Web Server + m… 0
amd64/httpd The Apache HTTP Server Project 0
appertly/httpd Customized Apache HTTPD that uses a PHP-FPM … 0 [OK]
itsziget/httpd24 Extended HTTPD Docker image based on the off… 0 [OK]
buzzardev/httpd Based on the official httpd image 0 [OK]
manageiq/httpd Container with httpd, built on CentOS for Ma… 0 [OK]
ppc64le/httpd The Apache HTTP Server Project 0
tugboatqa/httpd The Apache HTTP Server Project 0
solsson/httpd-openidc mod_auth_openidc on official httpd image, ve… 0 [OK]
alvistack/httpd Docker Image Packaging for Apache 0 [OK]
waja/httpdiff Docker image for httpdiff: https://github.co… 0 [OK]
trollin/httpd 0
# 第2引数にオープンする詳細ページの数を指定可能。(デフォルトは1)
$ dockerhub httpd 3 | head -n 4
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
httpd The Apache HTTP Server Project 2603 [OK]
centos/httpd 23 [OK]
centos/httpd-24-centos7 Platform for running Apache httpd 2.4 or bui… 22
ディスカッション
コメント一覧
まだ、コメントがありません