- Dockerhubからイメージを持ってくる際に、
docker searchコマンドで検索することは多い。 - その際に、Official欄を見て公式かどうかを確認する状況も多い。
- 今回は、検索結果からOfficialのイメージを抜き出すシェルを記録する。
環境
- Mac OS X 10.15.6
- Docker version 19.03.12
結果
- 結果の記述は以下の通り。
# ubuntu
docker search ubuntu | awk-F' +''{gsub(/[0-9]+/,"[NO]",$(NF-1)); print $1,$(NF-1)}' | grep-v"\[NO\]"
NAME OFFICIAL
ubuntu [OK]
websphere-liberty [OK]
ubuntu-upstart [OK]
neurodebian [OK]
ubuntu-debootstrap [OK]
open-liberty [OK]
# alpine
docker search alpine | awk-F' +''{gsub(/[0-9]+/,"[NO]",$(NF-1)); print $1,$(NF-1)}' | grep-v"\[NO\]"
NAME OFFICIAL
alpine [OK]
# node
docker search node | awk-F' +''{gsub(/[0-9]+/,"[NO]",$(NF-1)); print $1,$(NF-1)}' | grep-v"\[NO\]"
NAME OFFICIAL
node [OK]
mongo-express [OK]
iojs [OK]
補足
awkでの正規表現による区切り指定
docker searchコマンドは、多用な空白で見やすくなっている。- そのため、awkで連続空白を区切り文字として正規表現で指定する必要がある。
空白の扱い
docker searchコマンドは、該当しない場合は空白になっている。- そのため、該当フィールドが1つ前のフィールドとなっている場合、"NO"と置換している。
- ※officalイメージの抜き出しのため、starを出さない想定。
公式コマンド
- 以下のような公式であるサブコマンドのfilterを利用することも可能。
- ※必要な項目のみの抽出とawkの習得のため、今回は利用していない。
# ubuntu検索
docker search ubuntu --filter"is-official=true"