コマンドラインから”Docker Hub”のDockerイメージを検索し詳細ページを開くスクリプト
2023-03-31Docker
はじめに
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)
Bash
必要なもの
- 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/{}"
}
Bash
以下は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
Bash
2023-03-31Docker
関連記事

Dockerコンテナ内でcronを実行し実行ログを出力する方法
はじめに Docker Compose を使って構築している環境にスケジューリン ...

boot2dockerを最も簡単に利用するには
最近話題の Docker を勉強し始めました。 CentOS サーバーや Ubu ...

ターミナルからTreasureDataにcsvファイルをアップロードする方法
はじめに 今までビックデータを扱う仕事をしてきたのにTreasure Dataを ...

実行中のBashシェルスクリプトを書き換えると挙動が変わる問題とその対処法
はじめに 時事ネタに乗り遅れましたが、昨年末にTwitterで話題になっていた内 ...

DockerでクリーンなVue.js開発環境を構築してみる
はじめに Vue.jsの開発のためのクリーンな環境を構築するためにDockerを ...
ディスカッション
コメント一覧
まだ、コメントがありません