4

各 docker コンテナーのサイズを何らかの構成で制限できるかどうかを確認しようとしています。

これに続いて、実行中の コンテナーのサイズを10Gから増やすことができます。縮小してもいいですか?縮小しようとすると、エラーがスローされましたonline shrinking not supported

理想的には、作成時にコンテナが継承するデフォルトのコンテナ サイズを構成および設定するオプションを探しています。docker デーモンの起動中に提案されたdevicemapperの Docker ドキュメント。--storage-optしかし、うまくいかないようです。

また、コンテナごとにサイズを制限できるかどうかも知りたいです(docker runコマンド中など)。

正しい方向へのポインタは大歓迎です。前もって感謝します

4

2 に答える 2

3

devicemapper グラフ エンジンを使用している場合は、storage-opt dm.basesize を使用して目的を達成できます。構成を変更した後、/var/lib/docker を消去する必要があります (データおよびメタデータ プール デバイスのプロビジョニングにダイレクト ブロック デバイスを使用している場合でも、これにより、現在所有しているすべてのイメージが消去されることに注意してください)。

私が従った手順は次のとおりです。

$ docker run -ti base/arch df -h /
Filesysem                                    Size  Used Avail Use% Mounted on
/dev/mapper/docker-254:7-73733-b8dc...6d28a  9.8G  335M  8.9G   4% /

したがって、現在、デフォルトの 10G ベース サイズを使用しています。

まず、構成を変更して「--storage-opt dm.basesize=5G」を追加します。

# vim /etc/systemd/system/docker.service
...
ExecStart=/usr/bin/docker -d -H fd:// -s devicemapper \
    --storage-opt dm.datadev=/dev/vg01/docker-dm-data \
    --storage-opt dm.metadatadev=/dev/vg01/docker-dm-meta \
    --storage-opt dm.basesize=5G

次に、Docker を停止します (事前にすべてのコンテナーが停止していることを確認し、構成をリロードし、/var/lib/docker を消去して Docker を再起動します。

# systemctl stop docker
# systemctl daemon-reload
# rm -rf /var/lib/docker
# systemctl start docker

「docker images」は、イメージが存在しないことを確認する必要があります。

次に、テストを再実行します。

$ docker run -ti base/arch df -h /
Unable to find image 'base/arch:latest' locally
Pulling repository base/arch
a64697d71089: Download complete 
511136ea3c5a: Download complete 
4bbfef585917: Download complete 
Status: Downloaded newer image for base/arch:latest
Filesystem                                 Size  Used Avail Use% Mounted on
/dev/mapper/docker-254:7-66094...f635ac65  4.8G  322M  4.3G   7% /

そして、5Gb の基本サイズがあります。

于 2015-01-04T22:45:11.607 に答える
1

devicemapper 設定で動作します。

--storage-driver devicemapper --storage-opt dm.basesize=5G
于 2016-11-24T11:29:22.483 に答える