仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

Docker コンテナの起動/削除の問題 - 修正方法

最近、私は Docker の使用に関するいくつかの興味深いチュートリアルを書きました。これは、LXC を毛むくじゃらの喜びの束に包み込み、自閉症に傾倒していない開発者、エンジニア、システム管理者が、それほど熱心ではない、どう言えばよいでしょうか。 Python vomit で、OS レベルの仮想化の驚異をお楽しみください。しかし、問題があります。

今日説明する 2 つの問題は、名前付きコンテナーを開始するとき、または名前付きコンテナーを削除しようとするときに発生します。つまり、画面上の派手な文字は次のようになります。「競合。名前 W はコンテナー XYZ によって既に使用されています。削除する必要があります...」そして 2 番目の問題は次のとおりです。「競合、デフォルトを削除できません。コンテナの名前...」 句読点の露骨な誤用は別として、これを整理する方法を理解する必要があります。

問題

さて、この問題があります:

docker run -d -ti -p 22 -p 80 --name <名前> <レポ:タグ>
FATA[0000] デーモンからのエラー応答:競合。 「XYZ」という名前は、コンテナー hexacode によって既に使用されています。その名前を再利用できるようにするには、そのコンテナーを削除 (または名前変更) する必要があります。

名前が既に使用されているため、コンテナーを開始できません。 docker ps コマンドを実行しますが、そこには表示されません。さらに、問題のあるコンテナの残り物を強制終了または削除しようとすると、次の結果が得られます:

docker rm --link <名前>
デーモンからのエラー応答:競合、コンテナのデフォルト名を削除できません
FATA[0000] エラー:1 つ以上のコンテナを削除できませんでした

行き止まりのようです。ならどうしよう?

ソリューション

まず、手元にあるものを把握しましょう。どうやら、過去のある時点で、名前付きコンテナーを作成し、それを実行したままにしていたようです。その後、なんらかの理由でホストが再起動され、コンテナが適切に終了されていません。残ったファイルは、システムが古い名前がまだ残っていると見なすため、古い名前で新しいコンテナーを再生成することを妨げているように見えます。

この問題を解決するには 2 つの方法があります。最初に優雅なものから始めます。 docker ps コマンドを実行しても、実際には実行されていないため、古いコンテナーは表示されません。ただし、-a フラグを指定して docker os コマンドを実行すると、すべてのコンテナーの実行履歴が表示されます:

異常な方法で終了したコンテナには、ゼロ以外のステータス コードがあります。名前に基づいて必要なものを検索し、実際の 16 進数コードを使用してそれらを削除します。例:

docker rm 85c2981e63f6 26ea04f41ab3

2 番目の方法は、残りのファイルを /var の下から手動で削除することです。具体的には、ファイルは /var/lib/docker/containers/ の下にあります。各コンテナ ディレクトリには非常に長いハッシュ識別子があり、その中には大量の見苦しい JSON 出力があります。目的のコンテナ名に一致する特定の文字列を検索すると、構成ファイルを保持する関連ディレクトリが見つかります。

名前検索に一致する親ディレクトリを削除してから、Docker サービスを再起動します。その後、再びあなたの名前を使用できるようになるはずです。これは、KVM と libvirt の残り物で見たものと似ています。

systemctl 再起動ドッカー

そして、あなたは立ち上がって実行する必要があります、老人!

結論

一部の問題は、特にサービスがクラッシュや再起動などを適切かつ堅牢に処理することに関連する場合に、非常に厄介な場合があります。残ったファイルが多くの悲しみを引き起こすのは嫌いです。そんなことはあってはならず、サービスは堂々と回復すべきです。でもね、コンテナはまだ新しい技術なので、こういうのは当たり前。

願わくば、見事な空調システムがフロントガラスに激怒を吹き飛ばすように、名前付きコンテナの作成や、予期しない再起動などに続く残り物の削除に関する霧と混乱を解消できたことを願っています。これで、Docker エクスペリエンスが少し快適になり、バックグラウンドでの動作について少し学習したことになります。それでは、お楽しみください。

乾杯。


  1. Windows 10 で Bluetooth の問題を解決する方法

    Bluetooth を使用すると、配線を必要とせずに Windows 10 デバイスとアクセサリを PC に接続できます。ほとんどの場合、Bluetooth は Windows 10 で正常に動作します。ただし、動作しない場合は、Windows 10 PC で Bluetooth 接続をトラブルシューティングするための手順を以下に示します。 1. Bluetooth が有効になっているかどうかを確認します 当然の手順のように思えますが、Bluetooth 設定をトラブルシューティングするための最も簡単な方法を確認し忘れることがあります。 Windows 10 デスクトップの右下にある Win

  2. Windows 10 ストアの問題を修正する方法

    Windows ストアは、コンピューターで Microsoft アプリケーションを入手するための公式のオンライン マーケットプレイスです。ストアやアプリの使用中に問題が発生することがあります。本日は、Windows 10 ストアの問題を修正するための 5 つの最善の方法を提案します。 : 1.トラブルシューティング: 問題を解決するための最初のステップは、トラブルシューティング担当者に修正の機会を与えることです。 Microsoft では、Windows ストアの正常な動作を妨げる可能性のある問題をスキャンして検出するトラブルシューティング ツールを提供しています。次に、可能であれば、自動的に