search
LoginSignup
5

More than 1 year has passed since last update.

posted at

updated at

Docker For Macが遅い

prefs-reset.png

「クソみたいに遅いじゃん。」自分の経験ではないですが、今後の為に資料を調査して理由・対応方法を咲くってみました。

遅い理由

結論としては「Docker For Mac」がosxfsを採用している。あ!!それよりosxfsがOSXのFSEvents APIとLinux’s inotify APIをマッピングさせているのが原因です。

参考:https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076/158

  • osxfsの throughput は250 MB/s -> これはほとんどのAPPで問題にならないはず
  • コンテナ内からosxfsに対するファイルIOのシステムコールはlatencyが遅い。書き込み時で200μs -> 通常のファイルシステムであれば under 10μs(クソやられた感じ)

対応方法

じゃ、簡単!!「Docker For Mac」を使えなければ良い。( ゚Д゚)ヴォケ!!

VirtualBoxを利用

docker-machineでVirtualBox上に立ち上げたdocker環境で開発環境を構築する。うん、面倒だ〜〜〜(;^ω^)

Docker For Macを使わない

CE 17.12 (edge) チャンネルを使うこと。(・д・)チッ

参考:https://blog.hanhans.net/2017/05/10/docker-user-guided-caching/

コンテイナ間を爆速で同期する

例としてはdocker-syncをおすすめします。rsyncで設定が簡単かな。

対策の実験

興味がある方はこちらへ
Laravel + Docker + 開発環境
Docker For Macが遅い:対策 - Mutagen編

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
What you can do with signing up
5