前回の記事でdockerのシンプルな使い方、立ち上げ方を解説しました
ただdockerによって何が動いているか、何がつくられたのかが分かりづらいと思うので、イメージとコンテナの違いを整理してそれぞれの確認コマンドを解説していきます
1.イメージとは
- イメージ(設計図):docker build で作るもの
- Dockerの内部ストレージに保存されるのでターミナルを閉じても保持される
- docker images で確認できる
# イメージをビルド
docker build -t myapp .
# イメージは残る
docker images
このあとターミナルを閉じても、docker images でまた確認できます
また、イメージには名前をつけることが出来ます
これによって管理しやすくなりますので通常はつけたほうがいいと思います
🔹 docker build のイメージ名のルール
1. 名前をつけた場合
docker build -t myapp:latest .
- イメージ名 → myapp
- タグ → latest(省略時のデフォルトタグ)
2. 名前をつけなかった場合
docker build .
- イメージには 名前が付きません
- 代わりに <none> という名前で登録されます
- タグも <none> になるので、こんな風に表示されます
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> abc123def456 5 minutes ago 1.2GB
イメージを後からリネームしたい場合は docker tag を使います
# イメージIDを確認
docker images
# イメージに名前をつけ直す
docker tag abc123def456 myapp:latest
2.コンテナとは
- コンテナ(実行中のアプリ):docker run で起動するもの
- ターミナルを閉じても動き続ける(バックグラウンドなら)
- ただし フォアグラウンドで動かしている場合は、ターミナルを閉じると終了する
フォアグラウンド(ターミナルに張り付いてる状態)
docker run myapp
→ ターミナルを閉じるとコンテナも止まる
スクレイピングなど、1回限りの実行ならこちら
バックグラウンド(デーモンモード)
docker run -d myapp
→ ターミナルを閉じても動き続ける
→ 状態は docker ps で確認できる
APIサーバーなどの常時稼働してほしいサービスはこちら
docker runでフォアグラウンドで起動したコンテナは終了したあともプロセスとして残ります
そのため通常1回限りのスクレイピングなどは、–rmをつけて実行後、自動で削除されるようにします
docker run --rm playwright-scraper
- コンテナは起動して 処理が終わったら自動で削除 されます
- イメージ(playwright-scraper)は残ります
つまり:
- イメージ = 設計図(残る)
- コンテナ = 実行中のインスタンス(–rm 付きなら消える)
🔹 –rm を付けない場合
docker run playwright-scraper
- 終了してもコンテナは残る
- docker ps -a で見ると「Exited」として残っている
- 後からログを確認したい場合には便利
- ただし放置すると不要なコンテナが溜まる
dockerイメージ、コンテナがいつの間にか増えてくると思うので、わからなくなってきたら以下のコマンドで整理、確認をするといいと思います
3.イメージの確認
docker images
- ここで表示されるのは「設計図(イメージ)」の一覧
- ビルドした playwright-scraper もここに出てきます
- 削除したいときは: docker rmi イメージ名 or イメージID
🔹 コンテナの確認
docker ps
- 実行中のコンテナだけ表示
docker ps -a
- 停止済みも含めた 全コンテナを表示
コンテナを削除したいときは
docker rm コンテナID
ちなみに、不要なイメージやコンテナを一気に掃除する便利コマンドもあります
docker system prune -f
これで「停止中のコンテナ」「タグなしイメージ」「未使用のネットワーク」などを一掃できます
docker イメージやコンテナは、ファイルやディレクトリとしては見えないのでコマンドで確認しながら整理して活用するといいと思います
コメント