22
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker Desktop for Macが遅いので早くしてみた

Last updated at Posted at 2023-02-01

概要

これまで「MacでDockerを利用すると遅い」というのが一般認識だったと思います。
そのため、以下のような涙ぐましい努力をしてきたことと思います。

  • node_modulesvendoerなどのPHPやNodeのライブラリをホストとマウントしないようする
  • マウントするvolumeにcacheddelegatedのオプションを付ける
  • ボリュームをrsyncで同期する
  • Linuxサーバーを用意してリモート開発する
  • Vagrantで作成した仮想環境内でDockerを利用する

しかし、これらの努力は全て過去のものと化しました!(言い過ぎです。笑)

環境

  • macOS Ventura 13.2
  • プロセッサ 2.8 GHz クアッドコアIntel Core i7
  • Docker Desktop v4.16.2

解決法

Docker Desktopの設定でgRPC FUSE(デフォルト)からVirtioFSに変更するだけです。

VirtioFSとは?

VirtioFSとは、公式サイトにあるように、仮想マシンとホストとの間で共有できるファイルシステムです。
今までのファイルシステムだと仮想環境での使用に対し最適化されておらずパフォーマンスに影響が出ていたようです。

公式サイト:https://virtio-fs.gitlab.io/

設定手順

  1. Docker Desktopを起動
  2. 「設定アイコン」 => 「General」を開く
  3. file sharingをgRPC FUSEからVirtioFSに変更
  4. 「Apply & restart」をクリック

スクリーンショット 2023-02-01 11.57.19.png

検証

検証内容

上記環境でnode_modulesを削除し、yarnを実行して、nuxt構築のために必要なnodeパッケージをインストールする時間を計測します。

結果

1回目 2回目 3回目 平均
gRPC FUSE 150.65s 177.35s 144.08s 157.36s
virtiofs 137.33s 132.69s 66.69s 112.24s

平均値で約45s早くなったという感じですね。

最後に

今回の検証はプレーンなNuxt3環境でのテストでしたので、もっと開発が進み利用するパッケージが増えたり、ソースコードが増えたりした環境だともっと恩恵を感じられそうな気がしますね。
Docker × Macの開発環境で苦痛を感じている方はぜひ一度試してみてください。

参考

22
9
2

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
22
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?