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

推薦する

WIN10 に複数のデータベースがインストールされている場合にコンピュータの速度低下を防ぐ方法

必要なときにサービスを有効にし、必要がないときは無効にします。データベース サービスを管理する方法:...

Apache ポートに基づいて仮想ホストを作成する例

apache: ポートに基づいて仮想ホストを作成する仮想ホスト(a、b、c)の作成を例に挙げます1)...

MySQLのkillがスレッドをkillできない理由

目次背景問題の説明原因分析シミュレーションする総括する背景日常の使用において、MySQL で個別また...

vue3 で vue-router を使用するための完全な手順

序文ルーティングの管理は、ほとんどのシングルページ アプリケーションにとって不可欠な機能です。 Vu...

jsは多次元配列を1次元配列に変換し、それを並べ替えます

目次まず多次元配列の平坦化についてお話しましょう方法 1: flat()方法 2: 空の文字列を連結...

CSSでカスタムフォント(font-face)を導入する方法の詳細な説明

なぜこれを使ったのか?それはポスターを作ることから始まりました。それは嵐の夜でした。 。 。さて、無...

nuxt.js 複数の環境変数の設定

目次1. はじめに2. シナリオ3. 環境を整える3.1 環境変数の挿入4. 最後に1. はじめに一...

React Contextの理解と応用についてお話ししましょう

目次序文React Context の初見コンテキストの使い方コンテキストを直接取得できるいくつかの...

HTML ウェブページでのアンカー(名前付きアンカー)の使用の概要

以下の情報はインターネットから収集したものです1. アンカーは、Web ページ作成におけるハイパーリ...

MySQL 8.0.15 winx64 解凍版のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.15 winx64解凍版のインストールと設定方法を紹介します。具体...

MySQL スケジュールタスクの実装と使用例

この記事では、例を使用して、MySQL スケジュール タスクの実装と使用方法を説明します。ご参考まで...

Nginx tp3.2.3 404 問題の解決

最近、Apache を nginx に変更しました。TP プロジェクトを実行に移すと、404 エラー...

nestjs からフロントエンドに返されるデータ形式のカプセル化実装

通常、開発プロセスでは、インターフェイス要求の成功または失敗は httpcode に基づいて決定され...

jQuery Ajax チャットボットの実装事例

チャットボットは多くの手作業を省くことができ、顧客サービス、天気予報対応など、さまざまな状況で使用で...

入力テキスト ボックスと画像検証コードの位置合わせの問題 (画像は常に入力より 1 つ上になります)

Web ページ制作では、input と img が同じ行に配置されることが多く、img タグが常に ...