ローカルミラーを削除したい場合は、使用できるdocker image rm
形式でコマンドを:
$ docker image rm [选项] <镜像1> [<镜像2> ...]
# ID、イメージ名、要約削除鏡付き
ここでは、<镜像>
それはかもしれ镜像短 ID
、镜像长 ID
、镜像名
または镜像摘要
。
例えば、我々は非常に少ないミラーを持っています:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0584b3d2cf6d 3 weeks ago 196.5 MB
redis alpine 501ad78535f0 3 weeks ago 21.03 MB
docker latest cf693ec9b5c7 3 weeks ago 105.1 MB
nginx latest e43d811ce2f4 5 weeks ago 181.5 MB
我々はまた、既知のフル画像ID、使用することができます长 ID
ミラーを削除することを。長いIDを使用することができ、スクリプトを使用しますが、手動入力があまりにも疲れたとき、とても多くの時間がある短 ID
画像を削除します。docker image ls
デフォルトはすでにそれを区別するために十分な長さ、他のミラーで、短いIDで、一般的に最初の3つの文字の上に表示されます。
我々は削除する場合たとえば、ここでは、redis:alpine
ミラーを、あなたが行うことができます。
$ docker image rm 501
Untagged: redis:alpine
Untagged: redis@sha256:f1ed3708f538b537eb9c2a7dd50dc90a706f7debd7e1196c9264edeea521a86d
Deleted: sha256:501ad78535f015d88872e13fa87a828425117e3d28075d0c117932b05bf189b7
Deleted: sha256:96167737e29ca8e9d74982ef2a0dda76ed7b430da55e321c071f0dbff8c2899b
Deleted: sha256:32770d1dcf835f192cafd6b9263b7b597a1778a403a109e2cc2ee866f74adf23
Deleted: sha256:127227698ad74a5846ff5153475e03439d96d4b1c7f2a449c7a826ef74a2d2fa
Deleted: sha256:1333ecc582459bac54e1437335c0816bc17634e131ea0cc48daa27d32c75eab3
Deleted: sha256:4fc455b921edf9c4aea207c51ab39b10b06540c8b4825ba57b3feed1668fa7c7
また、使用することができ镜像名
ていること、<仓库名>:<标签>
ミラーを削除するには、。
$ docker image rm centos
Untagged: centos:latest
Untagged: centos@sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c
Deleted: sha256:0584b3d2cf6d235ee310cf14b54667d889887b838d3f3d3033acd70fc3c48b8a
Deleted: sha256:97ca462ad9eeae25941546209454496e1d66749d53dfa2ee32bf1faabd239d38
もちろん、より正確には、使用することです镜像摘要
削除ミラーを。
$ docker image ls --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
node slim sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228 6e0c4c8e3913 3 weeks ago 214 MB
$ docker image rm node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228
Untagged: node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228
#タグなし和削除されました
これらのコマンドを実行し、上記の情報の出力を見れば、あなたは、削除動作が2つのカテゴリに分類されてわかります、1はUntagged
、他のIS Deleted
。私たちは、ユニークな画像がそのIDとサマリーで識別し、ミラーが複数のラベルを持つことができること、前に紹介しました。
私たちは、ミラーを削除するには、上記のコマンドを使用する際に、ミラーは、実際にラベルの削除を要求しています。だから、最初に行うには、すべての必要性のミラータグが削除されている当社のすべての要件を満たすことである、これは私たちが見たものであるUntagged
情報を。ミラーは、複数のラベルに対応することができるので、我々は指定されたラベルを除去する際に、ラベルは、この場合は、次に、この画像に他の点を有していてもよいDelete
現象が発生しないであろう。だから、すべてではないdocker image rm
ミラーの動作を削除する必要があります、唯一のラベルだけがキャンセルされる場合があります。
ミラーは、すべてのタグが取り消された場合は、画像は、このように削除の動作をトリガー、存在意義を失う可能性があります。ストレージ構造は、多層ミラーであるので、削除を削除するときは、順次上位層からベース層の方向であると判定されます。ミラーミラー多層構造は変化の多重化が非常に容易であることができ、従って現在階層の鏡像であるいくつかの他の画像に依存する可能性があります。この場合は、層がまだ動作をトリガしません削除します。現在のレイヤーに応じて、何の層が存在しなくなるまで、唯一の本当の現在のレイヤーを削除します。時には鏡の理由は他のラベル明確にポイントを不思議ませんが、それはまだ存在している理由、そしてなぜ時々の層の数を見つけると、自分を削除する理由、つまりdocker pull
異なるソースの層数を確認します。
画像依存性に加えて、容器は、画像に依存していることに留意すべきです。便利なコンテナ(コンテナが実行されていない場合でも)、この画像スタートがある場合、同じ缶がこのイメージを削除しません。上述の前に、容器は、メモリを実行するために、このような多層構造からなる一つの層と結合されたミラーベース、貯蔵容器です。コンテナのイメージが依存している場合このように、必然的に失敗につながるが削除されます。コンテナが必要とされていない場合は、まずそれらを削除する必要があり、その後、画像を削除するために戻ってきます。
#ドッキングウィンドウで画像lsが一致するためのコマンド
他のエンティティは、複数のコマンドを引き受けることと同じように、のような、使用することができますdocker image ls -q
使用を一致させるためにdocker image rm
、あなたは、削除したい画像を一括削除することができます。私たちは、セクション「ミラーのリスト」に引き継ぐことができ、フィルタリストをミラーリング多くの方法を導入しました。
たとえば、私たちは、呼び出されたすべての倉庫削除する必要がredis
ミラーリングを:
$ docker image rm $(docker image ls -q redis)
またはすべて削除mongo:3.2
鏡を前に:
$ docker image rm $(docker image ls -q -f before=mongo:3.2)
あなたの想像力とLinuxのコマンドラインのパワーを活用し、あなたは非常に立派な機能の多くを行うことができます。
#は、 CentOSの/ RHELのユーザーは注意を払うに必要な事項
Ubuntuの/ Debianの上でありますUnionFS
よう、使用することができるaufs
かoverlay2
、およびCentOSのとRHELないカーネルドライバ。従って、このようなシステムのために、一般的に用いdevicemapper
階層ストレージをシミュレートするために、LVMを使用して、駆動機構を。このアプローチに加えて、比較的貧弱なパフォーマンスで、安定性は一般的に良くない、と構成が比較的複雑です。ドッカーはCentOSの/ RHELに搭載された後、デフォルトで選択されたdevicemapper
構成では、簡単にするために、devicemapper
デバイスブロックスパースファイルアナログ上で実行される、とも呼ばれますloop-lvm
。このような選択は自動的に物事を行うための唯一の方法が設定されているドッカーを、実行するために追加の構成はありません。しかしloop-lvm
実際には、悪化しその安定性、パフォーマンスが非常に悪いです、かどうかログdocker info
に警告メッセージが表示されます。明確な記事がどのように構成するブロックデバイスに説明する公式文書devicemapper
記憶層アプローチを行うためのドライバは、そのような慣行は、コンフィギュレーションと呼ばれていますdirect-lvm
。
問題に加えて先に述べたように、devicemapper
+ loop-lvm
それが成長していきますので、それは、スパースファイルであるため、欠陥があります。ユーザーはもちろんのそれに気づくでしょう/var/lib/docker/devicemapper/devicemapper/data
成長が、制御できません。多くの人々は、ミラーを削除したいと思うでしょうか。この問題を解決し、効果が明らかでないことが判明することができます。その理由は、ガベージコレクションの問題もなく、基本的なスペースのスパースファイルのリリース後です。だから、多くの場合、あなたは、ファイルの内容を削除しても表示されますが、スペースはスパースファイルの使用が増加していると、再利用することはできません。
だから、ユーザーのCentOSのために/ RHELは、使用する方法はありませんにされたUnionFS
状況下で、設定する必要がありますdirect-lvm
しdevicemapper
、パフォーマンス、安定性や宇宙利用のためかどうか。
たぶん誰かが7つの駆動バックポートがオーバーレイバックアップCentOSのが、本番環境の安定性のドライバを使用することができないのCentOSの存在に気づいた、それが推奨されていません。