たくさんDockerイメージをpullしたい時ってネットワーク速度にもよりますが、わりと時間がかかってしまいます。
少しでも高速化できないかなと思い並列して docker pull
を実行する方法を調べました。
回線速度
80 Mbps
の環境で調査してます。
docker pull を直列実行
docker pull debian
docker pull ubuntu
docker pull alpine
docker pull fedora
docker pull centos
まとめて実行すると約70秒かかりました。
$ docker image prune -af
一旦pullしたイメージを削除します。
docker pull を並列実行
docker pull debian &
docker pull ubuntu &
docker pull alpine &
docker pull fedora &
docker pull centos &
wait
約35秒かかりました。
結果
- 70秒 => 35秒
35秒の高速化に成功しました!!!
倍の速さです!!
CIでdocker pullする時も先に並列でdocker pullでダウンロードしておくといいかもしれないです。
補足
-
&
を付けてコマンドを実行するとバックグラウンドで実行されます -
wait
現在のシェルが実行しているジョブが終了するのを待つ