Sign up for free

This page is intended for users in Japan(English). Go to the page for users in United States.

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で設定が簡単かな。

個人的にはこちらをオススメします。_| ̄|○))頼む!

Docker漫才!!!