結論
- ネットワーク :
--net=host
を使う - DISK :
-v
を使いその中で読み書きする
以下メモ
ネットワーク
ポートを100個くらい開けないといけないコンテナはどうすればいいのかと
思っていたところ、--net=host
オプションがあることに気がついた。
起動
sudo docker run --privileged -it -d \
--net=host tukiyo3/centos7-lampp
curl localhost
あとはポートが衝突しないように意識しながら使う。
1ホスト2コンテナぐらいなら管理できるでしょう。
参考
速度向上も期待できる。
mysqlのようなパフォーマンスを気にしないといけないものを動かす場合用。
ネットワークパフォーマンスは--net=hostを使うことで改善できる。
DISK
docker内のDISKランダムシークはホストの5倍は遅い
差分管理する箇所へのI/Oの性能劣化は見られます
差分管理の場所はそりゃ遅いだろう・・・。
その場合、-v
でホストのDISKをマウント(Guest Shared)すればさほど変わらないパフォーマンスを得られる。
AUFSでファイルシステムををスタックできる限界値に到達したかららしい。限界値は 42 らしい。
cpu
dockerはデフォルトでホストのCPU割当てを全て割り当てる。
そのためKVMやOpenVzのようなCPU割り当てをチューニングする必要がなく簡単である。
逆に割当てを制限することは出来る。気が向いたら書く。