Dockerがコンテナサービスを停止または削除できない問題の解決策

Dockerがコンテナサービスを停止または削除できない問題の解決策

序文

今日、開発者から、コンテナ サービスを停止、rm (docker rm -f)、または強制終了できないというフィードバックがありました。つまり、コンテナ サービスを終了できないということです。

手順

(1) dockerディレクトリはdeleteコマンドを実行しても削除できません。

# ll /var/lib/docker/containers | grep caf8ef20f3c1
# cd /var/lib/docker/コンテナ 
# rm -rf caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8

このとき、次のようなエラーが表示されます。

rm: "/var/lib/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/secrets" を削除できません: デバイスまたはリソースがビジー状態です

「/var/lib/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/shm」を削除できません: デバイスまたはリソースがビジーです

(2) 上記のエラーから、「secrets」と「shm」の共有マウントは削除できないことがわかります。まずマウント場所を見つけ、マウントをキャンセルしてから削除します。

# cat /proc/mounts |grep "docker" |grep "caf8ef20f3c1"

(3)アンマウント:

# /data/sys/var/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/secrets をアンマウントします
# /data/sys/var/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/shm をアンマウントします

(4)もう一度確認する:

# cat /proc/mounts |grep "docker" |grep "caf8ef20f3c1" // 存在しない

(5)dockerディレクトリを削除します。

# cd /var/lib/docker/コンテナ 
# rm -rf caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8

(6)コンテナサービスを削除する

ここで、rm または kill を使用してコンテナ サービスを削除します。

# docker rm -f caf8ef20f3c1c

または

# docker kill --signal=SIGINT caf8ef20f3c1

上記のコマンドを実行後にハングする場合は、Docker サービスを再起動してください。

# systemctl dockerを再起動します

上記の手順を完了すると、遭遇した問題は基本的に解決できます〜

補足: Dockerコンテナを停止または強制終了することはできません

問題プロセス

特定の環境のMySQLコンテナを停止、強制終了、またはrmすることができない

sudo docker ps | grep mysql でコンテナを表示します

7844250860f8 mysql:5.7.22 "/.r/r docker-entr..." 41 分前 8 分前 r-dlrel-mysql-1-66df8f33

docker stop / docker kill / docker rm -fなどのコマンドを使用した後、コンテナはすぐに自動的に再起動します。

コンテナをすぐに確認してください。実行時間: Up 1 秒未満で、コンテナがすぐに起動したことを示しています。

7844250860f8 mysql:5.7.22 "/.r/r docker-entr..." 42 分前 1 秒未満 r-dlrel-mysql-1-66df8f33

コンテナに対応する物理プロセスを強制終了し、自動的に再起動します。

物理プロセスを取得する方法: 1. dockerinspectのState.Pidフィールドは物理プロセスIDです。2. psコマンド

コンテナの再起動ポリシーを確認します。ポリシーは「いいえ」なので、自動的に再起動されません。

実行中のコンテナの再起動ポリシーを更新する必要がある場合は、次のコマンドを使用できます: docker update –restart=no my-container

「再起動ポリシー」: {
  「名前」:「いいえ」
  「最大再試行回数」: 0
},

プログラマーが問題を解決する魔法の方法

次のようなシナリオに遭遇したことはありませんか?

私はある問題に困惑していましたが、同僚の前に立ち、その問題をわかりやすく説明すると、突然理解できました。

問題は明らかに非常に単純でしたが、プログラムの実行中に問題が発生しました。そこで、同僚に基本的な構成を確認するよう依頼したところ、突然答えに気づきました。

今回は、私は前者のタイプです。質問を終えるとすぐに、ああ、コンテナ オーケストレーション ツール Rancher がスケジュール管理をしていて、コンテナがクラッシュすると自動的に再起動するのだな、とすぐに思い出しました。

Rancher にログインしてみると、確かにその通りで、問題は「間違って」いることがわかりました。今回は問題ではありませんが、Docker には停止できないという問題があり、それに関する情報は数多くあります。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Dockerコンテナを停止および削除できない問題の解決策
  • Docker stopはすべてのコンテナを停止/削除します
  • Docker で停止したコンテナを一括削除する方法

<<:  Vueバインディングクラスとバインディングインラインスタイルの実装方法

>>:  左右移動時のテキスト変換効果のHTMLコード分析

推薦する

Windows 10 でカスタムドメイン名をバインドするように Hexo と GitHub を構成する方法

Hexo は Windows 10 でカスタムドメイン名を GitHub にバインドしますまずドメイ...

Ubuntu 20.04 に Python 3 仮想環境をインストールする詳細なチュートリアル

以下はすべて仮想マシン上で実行されます1. pip3をインストールするsudo apt で pyth...

MySQL テーブルデータのインポートとエクスポートの例

この記事では、MySQL テーブル データのインポートおよびエクスポート操作について説明します。ご参...

vsFTP 3.0.3 のコンパイルとインストールの詳細な分析

脆弱性の詳細VSFTP は、GPL に基づいてリリースされた Unix ライクなシステムで使用される...

MySQLは変数を使用してさまざまなソートを実装します

コアコード -- 以下では、MySQLでのソート列の実装を示します -- テストデータ CREATE...

SpringbootはDockerデプロイメントを統合し、Dockerイメージを構築する2つの方法を実装します。

Docker は、あらゆるアプリケーション用の軽量でポータブルな自己完結型コンテナーを簡単に作成で...

Docker プライベート ウェアハウスを構築する (自己署名方式)

作成したイメージを一元管理し、サービスの展開を容易にするために、プライベート Docker リポジト...

CSS3 のディスプレイのグリッドレイアウトとフレックスレイアウトの詳細な説明

Gird レイアウトは Flex レイアウトといくつかの類似点があり、どちらもコンテナーの内部項目を...

MySQLの空の値とnull値の違いを知っていますか?

序文最近、友人がSQLを書くときにnull値を判定する方法が間違っていて、プログラム内のデータにエラ...

ブラウザでTIF形式の画像を表示する方法

ブラウザはTIF形式の画像を表示しますコードをコピーコードは次のとおりです。 <html>...

Windows 版 MySQL のインストール、起動、基本設定に関する詳細なグラフィック チュートリアル

ダウンロード:ステップ 1: ウェブサイトを開きます (ダウンロードするには公式ウェブサイトにアクセ...

情報製品の読書リストのインタラクティブなデザインに関する考えと経験の共有

リストは、テーブルをコンテナーとして使用するテキストまたはグラフの形式として定義されます。商品の種類...

Vue Routerはバックグラウンドデータに応じて異なるコンポーネントをロードします

目次実際のプロジェクトで遭遇する要件実装が間違っているところもある私は個人的に、実装するより良い方法...

CSSでイメージマッピングを実装する方法

1. はじめにイメージマップを使用すると、画像の領域をホットスポットとして指定できます。この領域にマ...

Nginx リバース プロキシ springboot jar パッケージ プロセス分析

Springboot プロジェクトをサーバーにデプロイする方法としては、war パッケージにパッケー...