ハマログ

株式会社イーツー・インフォの社員ブログ

WSL2のDockerで”[internal] load metadata for docker.io/library…”がやたら遅い問題

WSL2のDockerで”[internal] load metadata for docker.io/library…”がやたら遅い問題

WSL2でdocker buildやdocker pullすると、”[internal] load metadata for docker.io/library…”に2~3分かかる。

解決策

~/.docker/config.jsonを編集して、”credsStore”: “docker.exe”を消す。

{
  "auths": {
    "123456789012.dkr.ecr.ap-northeast-1.amazonaws.com": {},
    "https://index.docker.io/v1/": {}
  },
  "credsStore": "docker.exe" <<-- これを消す
}

Docker DesktopやWindowsを再起動すると設定ファイルが元に戻ってしまうみたいです。jqを使って、こんなワンライナーで対応することにしました。

cat <<< $(jq 'del(.credsStore)' ~/.docker/config.json ) > ~/.docker/config.json

<<<やら>やらで、やたらリダイレクトしてるのはsedのようにファイルを上書きするオプションがjqにないためです。

この対策でメタデータの取得は2~3秒と、正常になりました。Dockerの認証にかかわる部分を省略するように変えているので、プライベートイメージの利用などには注意が必要かもしれません。

参考1)https://github.com/docker/for-win/issues/12995
参考2)https://github.com/docker/for-win/issues/10247
参考3)https://stackoverflow.com/questions/36565295/jq-to-replace-text-directly-on-file-like-sed-I

あとがき

先週はLaravel 10の正式リリースや、個人的に愛用していたフォントRictyなどのいろいろニュースがあったので、今日のブログネタに困らなそうでしたが、ちょうどこの問題にあたったので書きました。

察するに、Docker Desktop for WindowsでDockerを導入したWSL2の環境でdocker runなどしたときに発生するトラブルっぽいです。私はもはやWSLがないと何も開発できない体になってしまいましたが、Dockerに関してはnertctlなど別のコンテナツールを使うのもありかもしれません。

  koni   2023年2月20日


関連記事

2023年上半期の国内ソフトウェア市場の話

こんにちは。 koma です。 IDC Japan株式会社が、11月22日に「2…

好きなゲームで印象に残ったこと-逆転裁判シリーズ-

つーじーです。今更ポケモンSV買いました、ポケモンBWから一気にSVまで飛んで仕…

花見月 2024

週末に近づくと天気が崩れる……を繰り返していた頃が、早咲きな桜の見頃と重なってし…


← 前の投稿

次の投稿 →