Dockerでイメージを削除する方法

Dockerでイメージを削除する方法

dockerでイメージを削除するコマンドはdocker rmiですが、このコマンドを実行してもイメージが削除できない場合があります。

[yaxin@ubox ~]
$docker イメージ
リポジトリ タグ イメージ ID 作成 仮想サイズ
eg_sshd 最新 ed9c93747fe1 45 時間前 329.8 MB
CentOS65 最新 e55a74a32125 2日前 360.6 MB
[yaxin@ubox ~]$docker rmi ed9c93747fe1
タグなし: ed9c93747fe16627be822ad3f7feeb8b4468200e5357877d3046aa83cc44c6af
[yaxin@ubox ~]$docker イメージ
リポジトリ タグ イメージ ID 作成 仮想サイズ
<なし> <なし> ed9c93747fe1 45 時間前 329.8 MB
CentOS65 最新 e55a74a32125 2日前 360.6 MB

イメージは削除されていないが、タグが削除されていることがわかります。docker rmi IMAGE_ID を再度実行すると、エラーが発生するだけです。

[yaxin@ubox ~]
$ docker rmi ed9c93747fe1
エラー: image_delete: 競合、ed9c93747fe1 は削除されませんでした
2014/03/22 15:58:27 エラー: 1 つ以上の画像を削除できませんでした

dockerヘルプを見ると、削除に関連する2つのコマンド、rmとrmiが見つかります。

rm 1つまたは複数のコンテナを削除する
rmi 1つ以上の画像を削除する

ここには、イメージとコンテナという 2 つの異なる単語があります。イメージは分かりやすいです。私たちが普段使っている仮想マシンのイメージと同じ意味を持ち、テンプレートに相当するものですが、コンテナはイメージが動作している時の状態です。 Docker は実行されたイメージごとにステータス (コンテナ) を保持します。実行中のコンテナを表示するには、docker ps コマンドを使用します。終了したコンテナを表示するには、docker ps -a を使用します。 コンテナを終了したときにその中のデータを保存し忘れた場合は、docker ps -a を使用して対応する実行中のコンテナを見つけ、docker commit コマンドを使用してそれをイメージとして保存してから実行することができます。

前の質問に戻りますが、イメージはコンテナによって参照(実行に使用)されるため、参照先のコンテナが破棄(削除)されなければ、イメージは削除できません。

したがって、実行されたイメージを削除する場合は、まずそのコンテナを削除する必要があります。前の例を続けましょう。

[yaxin@ubox ~]
$ docker ps -a
コンテナID イメージ コマンド 作成ステータス ポート名
117843ade696 ed9c93747fe1 /bin/sh -c /usr/sbin 46 時間前 46 時間前 0.0.0.0:49153->2​​2/tcp test_sshd

イメージ ed9c93747fe1 はコンテナ 117843ade696 によって使用されているため、まずコンテナを削除する必要があることがわかります。

[yaxin@ubox ~]
$ docker rm 117843ade696
エラー: container_delete: 実行中のコンテナを削除できません。まずコンテナを停止してください
2014/03/22 16:36:44 エラー: 1 つ以上のコンテナの削除に失敗しました

コンテナが実行中であるためエラーが発生しました(表示するにはdocker psを実行してください)。まずコンテナを閉じてください。

[yaxin@ubox ~]
$ docker stop 117843ade696
117843ade696
[yaxin@ubox ~]
$ docker rm 117843ade696
117843ade696
[yaxin@ubox ~]$docker rmi ed9c93747fe1
削除済み: ed9c93747fe16627be822ad3f7feeb8b4468200e5357877d3046aa83cc44c6af
削除済み: c8a0c19429daf73074040a14e527ad5734e70363c644f18c6815388b63eedc9b
削除済み: 95dba4c468f0e53e5f1e5d76b8581d6740aab9f59141f783f8e263ccd7cf2a8e
削除済み: c25dc743e40af6858c34375d450851bd606a70ace5d04e231a7fcc6d2ea23cc1
削除済み: 20562f5714a5ce764845119399ef75e652e23135cd5c54265ff8218b61ccbd33
削除済み: c8af1dc23af7a7aea0c25ba9b28bdee68caa8866f056e4f2aa2a5fa1bcb12693
削除済み: 38fdb2c5432e08ec6121f8dbb17e1fde17d5db4c1f149a9b702785dbf7b0f3be
削除済み: 79ca14274c80ac1df1333b89b2a41c0e0e3b91cd1b267b31bef852ceab3b2044
[yaxin@ubox ~]$docker イメージ
リポジトリ タグ イメージ ID 作成 仮想サイズ
CentOS65 最新 e55a74a32125 2日前 360.6 MB

画像が削除されたことがわかります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • kubernetes1.20 で docker (shim) を containerd に置き換える問題について説明します。
  • Dockerコンテナを終了した後も実行を継続する方法
  • Dockerは異常なコンテナ操作を排除する
  • さようなら Docker: 5 分で Containerd に移行する方法
  • Dockerはコンテナにポートを動的に公開します
  • Dockerイメージ内のnoneイメージ操作を削除する
  • Dockerイメージのローカル移行の実装
  • Dockerイメージが消える問題を解決する
  • Docker イメージを削除できません エラー: そのようなイメージはありません: xxxxxx 解決策
  • Docker でのコンテナとイメージの命名

<<:  Reactマウスの複数選択機能の設定方法

>>:  MySQL Installer Community 5.7.16 インストール詳細チュートリアル

推薦する

メタタグを簡単に説明すると

META タグは、一般的に タグと呼ばれ、HTML Web ページのソース コード内の重要な HTM...

JavaScript を使用して動的な QQ 登録ページを作成する

目次1. はじめに1. 基本レイアウト2. 写真を自動的に切り替える3. コンテンツを追加する4. ...

MySQL インデックスの効率的な使用ガイド

序文ほとんどの方がMySQLとインデックスを使用したことがあると思いますが、適切なインデックスを作成...

1行のコードでLinuxのプロセスを隠す方法を学ぶ

友人たちはいつも、Linux のプロセスを隠す方法を私に尋ねます。私は、どの程度隠したいのか、カーネ...

MySQL での utf8mb4 照合の例

MySQL における一般的な utf8mb4 ソート規則は次のとおりです。 utf8mb4_0900...

ElementUI コンポーネント el-dropdown (落とし穴)

選択して変更: クリックすると現在の値が表示され、ページ UI が表示され、CSS スタイルが変更さ...

Vueはローカルストレージの追加、削除、変更機能を実装します

この記事では、ローカルストレージの追加、削除、変更を実装するためのVueの具体的なコードを例として紹...

CSS で 3D ルービック キューブを実装するサンプル コード

今日は簡単な3Dルービックキューブを作ってみましょうまずはレンダリングを見てみましょう!これを学んだ...

nginxプロセスロックの実装の詳細な説明

目次1. nginxプロセスロックの役割2. エントリーレベルのロックの使用3. nginxプロセス...

Ubuntu環境にAnaconda3をインストールするための完全な手順

目次Anaconda の紹介1. ダウンロード1.1 インストールパッケージを保存するフォルダを作成...

中国語と英語のフォント名の比較表(FounderとArphicを含む)

CSS ファイルでは、フォント名が文字化けしていることがよくあります。これは、作成者が中国語フォン...

ES6 ループと反復可能オブジェクトの例

この記事では、ES6 の for ... of ループについて説明します。古い方法以前は、JavaS...

JavaScript の parseInt() の魔法についての簡単な説明

原因このブログを書いた理由は、今日Leetcodeの日課問題をやっていたからです。文字列を整数(at...

MySQLデータベースのデータテーブルに関する詳細な基本操作

目次1. 現在のデータベース内のテーブルを表示する2. テーブルを作成する3. 指定されたテーブル構...

1 行または複数行のテキストがオーバーフローしたときに省略記号を表示する CSS を実装する方法

1. 単一行オーバーフロー1. 1 行がオーバーフローした場合、超過部分は表示されます...または、...