Docker(4):ドッキングリソースの管理


Overview
前述の声明では、ドッキングコンテナはホスト(ファイルシステム、リソースなどの分離)と見なされています.それでもホストのCPUやRAMなどのリソースの割り当ては変わっていない.
コンテナを作成するrun、createコマンドでオプションを使用して、コンテナリソースの割り当てを調整できます.コンテナリソース割り当てオプションを設定しないと、ホストのすべてのリソースが占有され、他のコンテナおよびホスト自体の動作が停止する可能性があります.(効率的に利用した方が良いのかな…)
けんさ
# docker inspect [container_name]
Disckquota, KernelMemory, ... 等形式表示JSON結果
# docker update [자원] [컨테이너이름] // 위 형태를 업데이트 하는 방법
メモリ制限
# docker run -d \
--memory="1g" \
--memory-swap=500m
--name memory_1g \
nginx
CPU制限
--cpu-shares
cpu割り当ての割合で適用する必要があります.1024は1を表す.CPUカーネルの場合、1つのコンテナが1024:512:512の割合で3つのコンテナを持つと、2:1:1の割合でロビンに戻ります.
# docker run -d \
--memory="1g" \
--memory-swap=500m \
--name memory_1g \
--cpu-shares 1024 \
nginx
--cpuset-cpu
ホストに複数のcpuがある場合は、特定のコンテナを独占できます.
# docker run -d \
--cpu-set=2 \ // 3번째 cpu만 사용하겠다는 의미
nginx
--cpu-period, --cpu-quota
CFS(完全公平スケジューラ)は100ミリ秒ですが、上記のオプションを使用して変更できます.デフォルトでは100000(100 ms)がperiodのデフォルト値であり、quotaの場合、kezolingに割り当てる割合を選択できます.
# docker run  -d --name quota_1 \
--cpu-period=100000 \
--cpu-quota=25000 \
alicek106/stress
100ミリ秒の割合は1/4にすぎません.つまり、デフォルトではなく1/4のリソースを使用します.
--cpus
--cpu-cperiod+--cpu-quotaは機能は同じですが、より直感的なオプションです.
# docker run  -d --name quota_1 \
--cpu-period=100000 \
--cpu-quota=25000 \
alicek106/stress

# # docker run  -d --name quota_1 \
--cpus=0.25 \
alicek106/stress
上記の2つのコマンドは、同じロールを実行します.
Block I/O制限
コンテナを作成する場合、オプションがない場合は帯域幅に制限はありません.コンテナがブロックI/Oを過度に使用しないようにするには、runコマンドの下で--device-write-bps+--device-read-bps、--device-write-iops、--device-read-iopsを使用します.bpsはbyte毎秒単位で、毎秒の読み取り速度を指定するとiopsは相対値とみなされます.使い方は省略する.
ストレージドライバとコンテナのストレージスペースの制限
ドッキングエンジンでは、コンテナ内部のストレージスペースを制限する機能は提供されませんが、ドッキングのストレージドライバまたはファイルシステムが特定の条件を満たしている場合にのみ、この機能の使用を制限できます.この部分は単独で位置決めされます.