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 インストール詳細チュートリアル

推薦する

Angularルーティングサブルートの詳細な説明

目次1. サブルート構文2. 例1. 2つの新しいコンポーネントを作成し、その内容を変更する2. ル...

MySQL マスタースレーブ同期の原理と応用

目次1. マスタースレーブ同期原理マスタースレーブ同期アーキテクチャ図(非同期同期)マスタースレーブ...

mysqlのデータディレクトリ内のファイルを直接コピーしてデータを復元する実装

mysqlはデータディレクトリ内のファイルをコピーしてデータを復元します背景: MySQL がクラッ...

Mysql systemctl start mysqld によって報告されるエラーの解決策

エラーメッセージ:制御プロセスがエラー コードで終了したため、mysqld.service のジョブ...

サーバーのDockerコンテナへのvscodeリモート接続を設定する方法

目次画像をプルするイメージを実行する(コンテナを生成する)コンテナを起動するコンテナに入るすべてのミ...

JSは画像の滝の流れの効果を実現します

この記事では、画像ウォーターフォールフローを実現するためのJSの具体的なコードを参考までに共有します...

Dockerイメージを構築する2つの方法

目次既存のイメージからイメージを更新します。イメージを最初から構築する: Docker イメージ リ...

MySql ページングで limit+order by を使用する場合のデータ重複の解決策

目次まとめ問題の説明問題を分析する問題を解決するまとめ複雑な知識をシンプルに説明できることは重要です...

美しいチェックボックススタイル(複数選択ボックス)はIE8/9/10、FFなどと完全に互換性があります。

恥ずかしながら、このようなよく使われるチェックボックスのスタイルを変更するために、Baidu で長い...

Reactの二次連携を実現する方法

この記事では、二次リンクを実現するためのReactの具体的なコードを参考までに共有します。具体的な内...

Linuxファイルの基本属性の知識ポイントのまとめ

Linux システムは典型的なマルチユーザー システムです。異なるユーザーは異なる立場にあり、異なる...

el-tree での不完全なテキスト表示の解決策

目次方法1: 水平スクロールバーを設定する最も簡単な方法方法2(新規):ドラッグバーを追加して外側の...

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

目次バインディングクラスインラインスタイルのバインディングバインディングクラス方法1:オブジェクト構...

Vueスロットの詳細な説明

1. 機能: 親コンポーネントが子コンポーネントの指定された位置に HTML 構造を挿入できるように...

Vueページの画像が表示されない問題の解決方法

新しいバージョンの設定インターフェースを作る際に、vueフレームワークを使用して実装しました。ページ...