[ドッカー]ドッカーディスクスペースをクリーンアップ、移行の/ var / libに/ドッキングウィンドウディレクトリは解決しました

明確な空間に:

1.ドッカーシステムコマンド

では、「誰がディスクを使い果たしましたか?ドッカーシステムの詳細なコマンド我々は詳細に説明し、」ドッキングウィンドウシステムのコマンドは、ディスクスペースを管理するために使用することができます。

DFドッキングウィンドウシステムのLinuxのようなコマンド、DFのドッカーのためのビューのディスク使用量のコマンドを実行します。

ドッキングウィンドウシステムDF
TYPEのTOTAL ACTIVE SIZE再利用可能
イメージ147 36 7.204ギガバイト3.887ギガバイト(53%)
コンテナ37 10 104.8メガバイト102.6メガバイト(97%)
ローカルボリューム3 3 1.421ギガバイト0B(0%)
ビルドキャッシュ0B 0B


発見、ドッカーミラーが占有7.2ギガバイトドッカーコンテナが占有し、ディスクを104.8メガバイトのディスクを、ドッカーデータボリュームが占有1.4ギガバイトのディスクを。

ドッカーシステムプルーンコマンドは、密閉容器を削除し、ディスクを洗浄するために使用することができ、無駄なデータネットワークの容量、及びダングリングミラー(即ち、なし鏡像タグ)。ドッキングウィンドウシステムプルーンの-aコマンドを使用すると、ドッカーの画像が削除された容器を使用することはできません、もっと徹底的にきれいにします。これらの2つのコマンドはその使用前に......など、一時的に未使用ドッカーミラーが削除されているだけでなく、一時的に密閉容器をお連れすることに注意してくださいをNaそれについて考える必要があります。

実行ドッキングウィンドウシステムプルーン-aコマンド、ドッカーディスク・スペースの後には、多くのことを減らすために:

ドッキングウィンドウシステムDF
TYPEのTOTAL ACTIVE SIZE再利用可能
画像10 10 2.271ギガバイト630.7メガバイト(27%)
コンテナ10 10 2.211メガバイト0B(0%)
ローカルボリューム3 3 1.421ギガバイト0B(0%)
ビルドキャッシュ0B 0B

2.手動クリーニングドッカーミラー/コンテナ/データ量

(バージョン1.13より前)ドッカーの遺産について、一切ドッカーシステムコマンド、手動クリーニングのために、したがって必要はありません。ここではいくつかの一般的に使用されるコマンドです:

すべての密閉容器を削除します

ドッキングウィンドウのps -a | grepの出口| -d '' -f 1カット| xargsのドッキングウィンドウRM


すべてのダングリングミラー(すなわち、タグのミラーイメージ)を削除します

ドッキングウィンドウRMI $(ドッカ画像|はgrep "^ <なし>" | awkの "{$ 3}印刷します")


すべてのダングリングデータボリューム(つまり役に立たないボリューム)を削除します

ドッキングウィンドウのボリュームのrm $(ドッキングウィンドウのボリュームLS -qfダングリング=真)

 

コンテナログのサイズを制限3.

一度、私はディスク1をきれいにするために使用する場合と2が挙げられ、私は一連の分析を行ったので、何の効果も認められませんでした。

コンテナに保存されているUbuntuの、ドッカー上のすべての関連するミラーを含む文書、などの/ var / libに/ドッキングウィンドウ/ディレクトリ:

あなた-HSは/ var / libに/ドッキングウィンドウ/
97Gの/ var / libに/ドッキングウィンドウ/


ドッカーは実際にほとんど使用100ギガバイトのディスクを、これで十分です。使用デュのコマンドはビューに続く、あなたはそんなに本当のディスクを取るディレクトリに移動することができます:

92Gの/ var / libに/ドッキングウィンドウ/コンテナ/ a376aa694b22ee497f6fc9f7d15d943de91c853284f8f105ff5ad6c7ddae7a53


ドッキングウィンドウのPS正確ID nginxのコンテナ、理解a376aa694b22、上記のディレクトリは/ var / libに/ドッキングウィンドウ/コンテナ / a376aa694b22 同じプレフィックス:

ドッキングウィンドウのPS
STATUSポートの名称を作成したコンテナのIDイメージコマンド
a376aa694b22 192.168.59.224:5000/nginx:1.12.1最大10分前に9週間 "nginxの-g「デーモンオフ" nginxの


したがって、nginxのコンテナが実際に占める92ギガバイトのディスクを。実際のディスク領域が占有さらなる分析のショーは、nginxのログファイルです。だから、理解することは難しいことではありません。私たちは、Fundebugその後、自然なログデータが非常に大きく、何百万人レベルでの日々のデータ要求を。

使用切捨てコマンドが「クリア」nginxのコンテナのログファイルにすることができます。

TRUNCATE -s 0 /var/lib/docker/containers/a376aa694b22ee497f6fc9f7d15d943de91c853284f8f105ff5ad6c7ddae7a53/*-json.log


もちろん、このコマンドは一時的な役割である、ログファイル、遅かれ早かれまで戻ってくるだろう。根本的に問題を解決するため、我々はする必要がnginxのコンテナログファイルのサイズを制限しますこのログを構成することができ、最大サイズが達成され、次のようにコンテナドッキングウィンドウ・コンnginxのプロフィールであります:

nginxの:
画像:nginxの:1.12.1
再起動してください:常に
ログ:
ドライバー:「JSONファイル」
オプション:
  最大サイズ:「5グラム」


そのログファイルのサイズがに制限され、再起動nginxのコンテナの後、5ギガバイト、もはや心配する必要はありません-

4.再起動ドッカー

また、一度、私はミラー、コンテナおよびデータボリューム、ディスクスペースを清掃したときに何の減少が見つかりませんでした。よると、ドッカーディスク使用量に述べた勧告、私が見つけ、ドッカーを再起動し、19%までの83%からディスク使用量を専門家によると指して、それはいくつかの役に立たないディレクトリをクリーンアップすることはできませんドッカーで、その結果、コア3.13バグに関連付けする必要があります。
 

SHMデバイスがビジー状態であったため、これらのコンテナのシャットダウン、ドッキングウィンドウは、ディレクトリを削除することができなかったとき、それはかなり可能性がその何らかの理由です。これは、3.13カーネル上で頻繁に発生する傾向があります。あなたは、信頼できる14.04.5 LTSでサポート4.4バージョンにアップデートすることをお勧めします。


それは、再起動後に消失した理由は、おそらくしようと、停止した容器から残されたデータをクリーンアップすることに成功しているデーモンです。

私は、何か3.13の発見をカーネルのバージョンをチェックします:

uname -r
3.13.0-86ジェネリック


カーネルのバージョンは3.13で、ディスクをきれいにそれをしなかった場合、それはドッカーを再起動する場合があります。もちろん、この夜の運転は、より信頼性の高いです。

 

 

移行:

 

まず、移行の/ var / libに/ドッカディレクトリ

1は、ディスクの使用状況を表示する-hsの/ var / libに/ドッキングウィンドウ/コマンドデュ。

ルート@ NN0:〜$あなた-HSの/ var / libに/ドッキングウィンドウ/
237Gの/ var / libに/ドッキングウィンドウ/

2、ビューのディスク使用量ドッカーのためのLinuxのdfコマンドのようなコマンドDFドッキングウィンドウシステム、、:

ルート@ NN0:〜$ドッキングウィンドウシステムDF
TYPEのTOTAL ACTIVE SIZE再利用可能
画像7 2 122.2ギガバイト79.07ギガバイト(64%)
容器2 2 61.96ギガバイト0B(0%)
ローカルボリューム0 0 0B 0B
キャッシュ0 0 0B 0Bを構築

図3に示すように、ドッカーシステムプルーンコマンドは、密閉容器を削除し、ディスクを洗浄するために使用することができ、無駄なデータネットワークの容量、及びダングリングミラー(即ち、なし鏡像タグ)。

コードをコピー

ルート@ NN0:〜$ドッキングウィンドウシステムプルーン
警告!これは削除されます:
- すべてのコンテナを停止
- すべてのネットワークは、少なくとも一つの容器で使用されていません
- すべてのダングリングの画像
- すべてのビルドキャッシュ
あなたが継続してもよろしいですか?[Y / N] Y
総埋立容量:0B

コードをコピー

4、ドッキングウィンドウシステムプルーン-aコマンドを使用すると、ドッカーの画像が削除された容器を使用することはできません、もっと徹底的にきれいにします。これらの2つのコマンドは、一時的に密閉容器を行くことができます、だけでなく、一時的に未使用ドッカーミラーが削除されている...ので、あなたの使用はそれについて考える必要があります前にことに注意してください。.. 私は、ドッカーの画像を開きます何のクリーンアップが存在しないため、使用していません。

5、移行の/ var / libに/ドッカディレクトリ。

5.1、ドッカサービスを停止します。

systemctlストップドッキングウィンドウ

5.2、大きなディスクを見つけ、df -hコマンドを実行し、新しいドッキングウィンドウのディレクトリを作成します。私は/建ての家/ドッキングウィンドウ/ libディレクトリの下の/ homeディレクトリ、およびコマンドは次のとおりです。

ます。mkdir -p /ホーム/ドッキングウィンドウ/ libに

5.3、ディレクトリへの移行は/ var / libに/ドッキングウィンドウのファイル/ホーム/ドッキングウィンドウ/ libに:

rsyncの-avzは/ var / libに/ドッキングウィンドウ/ホーム/ドッキングウィンドウ/ libに/

5.4、設定/etc/systemd/system/docker.service.d/devicemapper.conf。ビューdevicemapper.confが存在します。そうでない場合は、[新規作成。

MKDIR -p /etc/systemd/system/docker.service.d/
我々は/etc/systemd/system/docker.service.d/devicemapper.conf

そして、一緒に親フォルダの同期までの書き込み:( 5.5 devicemapper.conf時刻同期は、実際には、ディレクトリ/ home /ドッキングウィンドウ/ libに/ドッキングウィンドウにする必要があります)

[サービス]
ExecStart =
ExecStart =は/ usr / binに/ dockerd --graph = /ホーム/ドッキングウィンドウ/ libに/ドッカ

5.6、リロードドッキングウィンドウ

systemctlデーモンリロード

systemctl再起動ドッカ

ドッキングウィンドウを有効にsystemctl

必ずすべてがうまくいくようにするために5.7、実行

#ドッカ情報

ルートディレクトリをチェックするドッカーコマンドは、ドッキングウィンドウ/ libに/ドッキングウィンドウ/に/家庭変更されます

...
ドッカールートディレクトリ:/ホーム/ドッキングウィンドウ/ libに/ドッカ
デバッグモード(クライアント):偽
デバッグモード(サーバー):偽
レジストリ:https://index.docker.io/v1/
...

5.8、正常に起動した後、ミラーが再確認はまだです前に:

ルート@ NN0:〜$ドッカ画像
リポジトリタグ画像のID CREATED SIZE
AAA / AAAは7331b8651bcc 27時間3.85ギガバイト前v2の
28時間3.47ギガバイト前BBB / BBB V1 da4a80dd8424

4.9容器を決定/ディレクトリに削除の/ var / libに/ドッカファイルに問題ありません。

 

第二に、移行の/ var / libに/ドッキングウィンドウのディレクトリには、ドッカーは(エラーがgraphdriverを初期化:ドライバがサポートされていない)を開始することはできません

スタート情報
[ルート@ NN0〜]#systemctlの開始ドッキングウィンドウ
制御プロセスがエラーコードで終了したのでdocker.serviceのための仕事に失敗しました。詳細については、「systemctl状態docker.service」と「journalctl -xe」を参照してください。

スタートの詳細

コードをコピー

systemdに8月31午前1時47分25秒localhost.localdomainを[1]:ドッカーアプリケーションコンテナエンジンを開始しています...
- 件名:ユニットdocker.serviceは起動を開始しました
- 定義-BY:systemdに
- サポート:http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-  
- ユニットdocker.serviceは起動を開始しました。
8月31 1時47分25秒のlocalhost.localdomainをdockerd [2390]:時間= "2018-08-31T01:47:08 + 25.197015872:00" レベル=情報MSG = "libcontainerd:新しいcontainerdプロセス、PID:2393"
8月31 1時47分26秒のlocalhost.localdomainをdockerd [2390]:時間= "2018-08-31T01:47:08 + 26.204103195:00" レベル=エラーMSG = "[graphdriver先行ストレージドライバoverlay2が失敗した:ドライバではありません「サポート
8月31午前1時47分26秒のlocalhost.localdomainをdockerd [2390]:エラー起動デーモン:エラー初期化graphdriver:ドライバがサポートされていません
8月31 1時47分26秒localhost.localdomainをシ​​ステムD [1]:docker.service:メイン処理が終了し、コード=終了し、ステータス= 1 / FAILURE
システムD 8月31一時47分26秒localhost.localdomainを[1]:ドッカーアプリケーションコンテナエンジンの起動に失敗しました。

コードをコピー

 

エラーの原因:エラーの初期化graphdriver:ドライバがサポートされていない
ソリューションを:の/ etc /ドッキングウィンドウのディレクトリにdaemon.jsonファイルを作成し、以下の設定を追加

touch daemon.json
vi daemon.json
{
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}

再起動します

systemctl start docker

問題解決

三、ドッカー-ONシステムは問題ではありませんruncインストール

問題の説明:

次のように与えられたドッキングウィンドウランタイムイメージ:

[ルート@ NN0 K8S]#]ドッキングウィンドウの実行-it registry.helloworld.com/test/atsd:latestバッシュ
WARNING:IPv4の転送が無効になっています。ネットワークが機能しません。
/ usr / binに/ドッキングウィンドウ - 現在:デーモンからのエラー応答:シムエラー:システムにインストールされていないドッカ-runc。

 

問題解決:

  いくつかの調査の後、次の解決策は役に立ち:

[ルート@ NN0 K8S]#のCDは/ usr / libexecに/ドッキングウィンドウ/
[ルート@ NN0ドッキングウィンドウ]#LN -sドッキングウィンドウ-runc電流ドッカ -  runc

 

上記、問題が解決されます。 

公開された19元の記事 ウォンの賞賛149 ビュー800 000 +

おすすめ

転載: blog.csdn.net/truelove12358/article/details/102949386