🎉

Dockerコンテナ、イメージの整理

に公開

※本記事は、2021年8月に個人ブログ「ふじやまエッグのブリコルール日誌」に初出したものを、ブログ閉鎖にともない一部加筆・修正のうえ、こちらに転載したものです。

Dockerを使っていると、いつのまにかコンテナやらイメージがたまってきて、パソコンの容量を圧迫したりします。


参考


コンテナをイメージに保存しておこうとも思ったが、コンテナを停止しても残る、ということなので、やらなくていいかなと思う。


コンテナの削除

Dockerイメージとコンテナの削除方法

Remove Docker image


コンテナのステータス

  • [Docker入門] Dockerコンテナのステータスを調べてみよう | Skyarch Broadcasting

exited から running に移行するコマンドの違い

docker startdocker run

  • docker run は、コンテナを作成またはダウンロードして実行するコマンド。
  • docker start は、作成済みのコンテナを起動するコマンド。

既にできあがったコンテナに対して docker run を実行すると?

docker run ではイメージを指定するので、既にできあがったコンテナを削除することはない。
別のコンテナが新しく作成されるだけである。

参考: Docker run リファレンス — Docker-docs-ja 20.10 ドキュメント

docker run [オプション] イメージ[:タグ|@ダイジェスト値] [コマンド] [引数...]

では、Docker startは、どうすればいい?

以下の形式である。

docker start [オプション] コンテナ [コンテナ...]

https://docs.docker.jp/engine/reference/commandline/start.html

Docker startしたが、コンテナ内に入れず、また、docker psの状態もかわらない。どういうこと?

おそらく、containerが起動できる状態になっていない。理由はわからないが。通常は、

docker start コンテナID

で、コンテナが起動。docker ps -a の結果も”Up”になる。

その後、

docker attach コンテナID

で、コンテナの中に入るのである。

docker start でも起動しないコンテナは、削除しようかと思う。

コンテナの削除はどうやるの?

以下でいける。

docker rm コンテナID

https://qiita.com/tifa2chan/items/e9aa408244687a63a0ae

しかし、docker attach しても、画面が固まったのですが?

そういうことがあるみたい。Cntl + C で、元に戻るが、コンテナがまた停止してしまうようです。
docker attach ではなく、docker exec の方がいいようです。

docker exec -it コンテナID /bin/bash

Docker attach と exec

では、コンテナの削除ができたので、今度はイメージを整理しよう。

まずは、docker imagesで、イメージの一覧を表示して、そこから、不要なイメージを docker rmi で削除する。

docker rmi [イメージID]

よし、これで少しはすっきりした。

Discussion