0
0

More than 3 years have passed since last update.

[Docker]searchコマンドでOfficialのイメージのみを抜き出すワンライナー

Last updated at Posted at 2021-01-27
  • 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"

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0