Docker上のapt-get updateが遅い!

Dockerの公式イメージ上でapt-get updateすると、公式サーバー(US)からデータを引っ張って来るため、非常に遅いです。

ミラーサーバーを国内のものに変更してあげれば改善するらしいので、どれくらい変わるのか試してみた。

ミラーサーバーの変更

参考:apt-getの利用リポジトリを日本サーバーに変更する – Qiita

sed -i.bak -e "s%http://[^ ]\+%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list

管理者権限で上記のコマンドを実行すればOK。当たり前だけど、Dockerfile内に書くときはapt-get updateの前に書いておく。

注意点

日本国外でも使用されることが想定されるDockerfileには書かないほうがいいかもしれない。

おまけ(計測)

どれぐらいかかる時間がかかるのかを測定。Fetched xx.x MB in xxx (xxx kB/s)みたいなのが出てくるのと、dateコマンドをapt-getの前後にはさんで測定しました。アナログでごめんなさい。

それぞれの速度は、ネットワーク環境その他もろもろで大きく変わってくるから参考程度にどうぞ。

Ubuntuはdocker run --rm -it ubuntuで起動。

apt-get updateのみ

  • ミラー変更前: 26s
  • ミラー変更後: 5s
echo "Start!" && date && apt-get update && date && echo "Done!"

apt-get update + apt-get upgrade

  • ミラー変更前: 43s
  • ミラー変更後: 10s
echo "Start!" && date && apt-get update && apt-get upgrade -y && date && echo "Done!"

まとめ

updateのみで21秒、upgradeもすると33秒早くなる。割合でいうとそれぞれ80%, 76%減。

43秒待てないわけではないけど、10秒でおわるならそのほうがうれしい。

かず猫

インターネット初心者です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください