【Docker】イメージ管理(images・pull・rmi)の基本

Docker

こんにちは、かつコーチです。
これまでコンテナの起動・管理を中心に学んできましたが、今回はコンテナの元になる「イメージ」の管理にフォーカスします。
イメージを正しく管理できるようになると、ディスク容量の無駄遣いや、思わぬバージョン違いのトラブルを防げるようになります。
docker pulldocker imagesdocker rmiという3つのコマンドを中心に解説します。

イメージ管理の基本

なぜイメージ管理が必要なのか

イメージは、コンテナを作るたびにパソコンのディスクに保存されていきます。
倉庫の在庫管理に例えると分かりやすいです。
使わなくなった在庫(イメージ)をそのまま倉庫(ディスク)に置きっぱなしにしていると、いつの間にか倉庫が満杯になってしまいます。
特にDockerのイメージは、1つあたり数百MB〜数GBになることも珍しくないため、放置しているとあっという間にディスク容量を圧迫します。
定期的に在庫(イメージ)を棚卸しし、不要なものを処分する意識が大切です。

Docker Hubという公式の置き場

イメージの多くは、Docker Hubという公式のオンラインリポジトリから取得します。
Docker Hubは、世界中の開発者が作成したイメージが公開されている、いわば「イメージの倉庫街」のような存在です。
nginxpythonmysqlといった有名なソフトウェアは、公式が用意したイメージがDocker Hub上に公開されており、誰でも自由に取得できます。

主要コマンドの使い方

docker pullでイメージを取得する

Docker Hubからイメージを取得するには、docker pullコマンドを使います。

docker pull python:3.12

イメージ名:タグの形式で指定し、タグにはバージョンを表す文字列を指定します。
docker runを実行した際、指定したイメージが手元になければ自動的にpullが行われますが、あらかじめダウンロードだけ済ませておきたい場面では、こうして単独でpullを実行します。

docker imagesでイメージ一覧・容量を確認する

手元にあるイメージの一覧と、それぞれの容量はdocker imagesで確認できます。

docker images
REPOSITORY   TAG      IMAGE ID       CREATED        SIZE
python       3.12     6a6c96337be1   3 weeks ago    1.02GB
nginx        latest   3f8a4339aadd   2 months ago   192MB

SIZE列を見ることで、どのイメージがディスク容量を圧迫しているか一目で分かります。
定期的にこのコマンドで一覧を確認する習慣をつけると、不要なイメージに早めに気づけます。

docker rmiでイメージを削除する

不要になったイメージは、docker rmi(remove image)で削除します。

docker rmi python:3.12

前回・前々回の記事でも触れた通り、そのイメージを参照しているコンテナが残っていると削除できません。
先にそのイメージから作られたコンテナをdocker rmで削除してから、イメージ本体を削除する順番を守りましょう。

よくあるつまずきポイント

Before/After:タグを省略してlatestを取得し想定外のバージョンで動く

タグの指定を省略してしまい、想定外のバージョンで動いてしまうのは、実務でも起こりやすいミスです。

❌Before:タグを省略してdocker pullする

docker pull node

私がチームの検証環境を構築した際、docker pull nodeとタグを省略して実行したところ、数か月前に構築した環境と異なるNode.jsのメジャーバージョンが取得され、動作していたコードでエラーが出るという経験をしました。
タグを省略すると、自動的にlatestタグ(その時点の最新版)が取得されるため、実行するタイミングによって取得されるバージョンが変わってしまうのです。

✅After:バージョンを明示的に指定する

docker pull node:20

node:20のように、必要なメジャーバージョンまでは必ず指定するようにしてから、この手の「気づかぬうちにバージョンが変わっている」トラブルはなくなりました。
本番環境で使うイメージほど、タグは具体的に指定することを徹底しましょう。

応用・一歩先の使い方

docker image pruneで未使用イメージを掃除する

コンテナと同様、イメージも使わなくなったものが溜まりがちです。
docker image pruneを使うと、どのコンテナからも参照されていないイメージをまとめて削除できます。

docker image prune

さらに踏み込んで整理したい場合は、-aオプションを付けると、タグ付けされていても使われていないイメージまで含めて削除対象にできます。

docker image prune -a

ディスク容量が気になってきたら、まずこのコマンドで掃除する習慣をつけると、快適な開発環境を維持しやすくなります。

まとめ

この記事のポイント

  • イメージは倉庫の在庫のように、放置するとディスク容量を圧迫する
  • docker pullでDocker Hubからイメージを取得できる
  • docker imagesで一覧と容量を確認し、docker rmiで不要なイメージを削除する
  • タグを省略するとlatestが取得され、意図しないバージョンになることがある
  • docker image pruneで未使用イメージをまとめて掃除できる

次に読むべき記事

ここまでで、Dockerの基本操作は一通り身についています。
次はいよいよ、独自のイメージを作る「Dockerfileの書き方基本」に進んでみましょう。
コンテナの管理方法を復習したい方は「コンテナのライフサイクル管理(ps・stop・rm)」も合わせてどうぞ。

タグ: Docker, 初心者向け, 基本操作

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