Docker For Macが遅い
「クソみたいに遅いじゃん。」自分の経験ではないですが、今後の為に資料を調査して理由・対応方法を咲くってみました。
遅い理由
結論としては「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で設定が簡単かな。
個人的にはこちらをオススメします。_| ̄|○))頼む!