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

Tech

Dockerを使っているうちにPCの容量を圧迫する

Dockerを使っていると、いつのまにかコンテナやらイメージがたまってきて、いつの間にかPCの容量を圧迫している、ということがあります。そういうときに、コンテナ、イメージを整理するのが良いです。

コンテナとイメージの削除の基本的な考え

コンテナは、その元となるイメージが存在します。削除の際は、基本的に先にコンテナを削除して、次にイメージを削除します。

コンテナの削除

コンテナのステータスと削除

コンテナを削除する際、コンテナをします。稼働中であっても強制的に削除できますが、基本的には、コンテナを停止してから削除します。

では、コンテナのステータスには、何がある?

コンテナには、以下のステータスがあります。

  • created
  • restarting
  • running
  • removing
  • paused
  • exited
  • dead

詳細は、以下のサイトにわかりやすく解説されています。

Docker入門 コンテナのライフサイクル

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

ところで、exited から running に移行するコマンドで docker start と docker run の2つあるが、その違いは?

以下の違いである。

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

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

docker run では、イメージを指定するので、既にできあがったコンテナを削除することはない。別のコンテナができるのである。

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

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

では、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

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

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

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

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

イメージの削除

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

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

docker rmi [イメージID]

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

タイトルとURLをコピーしました