【初心者向け】Dockerコンテナを一時停止する方法|pauseとstopの違いも解説!

Docker

Dockerを使っていると、こんなことを思ったことはありませんか?

「コンテナを一旦止めたいけど、削除はしたくない」
「パソコンのリソースを節約したいけど、また後で使いたい」
「メンテナンス中だけコンテナを止めておきたい」

そんな時に便利なのが、Dockerコンテナの「一時停止」機能です。

コンテナを完全に削除してしまうと、また一から作り直さなければなりません。

でも一時停止なら、必要な時にすぐ再開できるので、とても便利です。

この記事では、Dockerでコンテナを一時的に止める2つの方法(pausestop)と、その違い、使い分けのポイントについて、初心者の方にも分かりやすく解説します。

スポンサーリンク

Dockerコンテナを一時停止する目的って何?

まず、なぜコンテナを一時停止したいのか、よくある理由をご紹介します。

一時停止したい理由:

  • CPUやメモリの使用量を抑えたい(パソコンが重くなるのを防ぐ)
  • 一時的にアクセスを遮断したい(メンテナンス中など)
  • 状態を保ったまま動作を止めたい(作業中のデータを残したい)
  • トラブル発生時の応急処置として
  • 開発中に一時的に止めたい

削除(rm)や電源を切るのとは違って、再開可能な状態で止めるのが「一時停止」の特徴です。

スマートフォンのアプリを「バックグラウンドで待機」させるのと似ています。

【方法1】docker pause コマンドで一時停止

最初にご紹介するのは、docker pauseコマンドです。これは「コンテナの処理を一時的に凍結する」方法です。

基本的な使い方

docker pause コンテナ名またはID

具体例:

docker pause myapp

どんなことが起こる?

docker pauseを実行すると:

  • コンテナのすべてのプロセスが一時停止(CPU使用率がゼロになる)
  • ネットワークも遮断される(外部からアクセスできなくなる)
  • メモリ上の状態はそのまま保持される
  • 再開した時に、止めた時点から続きができる

再開する方法

一時停止したコンテナを再開するには:

docker unpause myapp

覚えておくポイント:

  • pause(一時停止)⇔ unpause(再開)がセット
  • 止めた瞬間の状態がそのまま保存される
  • 再開がとても早い(数秒以内)

【方法2】docker stop コマンドで停止

次にご紹介するのは、docker stopコマンドです。これは「コンテナを完全に停止する」方法です。

基本的な使い方

docker stop コンテナ名

具体例:

docker stop myapp

どんなことが起こる?

docker stopを実行すると:

  • コンテナのプロセスが完全に終了
  • メモリから情報が消える
  • 再開時は「起動」し直す必要がある
  • 保存されていないデータは失われる可能性がある

再開する方法

停止したコンテナを再開するには:

docker start myapp

pauseとstopの違いを比較

2つの方法の違いを表で比較してみましょう。

項目pausestop
プロセス一時停止(保留状態)完全に終了
状态の保持メモリ上に残るメモリから消える
再開方法unpausestart
再開の速度高速(即座)数秒かかることもある
データの保持作業中のデータも保持保存済みのデータのみ保持
リソース使用メモリは使用中メモリとCPUを解放

簡単にまとめると:

  • pauseは「一時中断」(本を読んでいる時にしおりを挟む感じ)
  • stopは「停止して後で再開」(本を閉じて、後でまた開く感じ)

状態確認コマンド

コンテナが今どんな状態か確認するには、以下のコマンドを使います。

docker ps -a

出力例:

CONTAINER ID  IMAGE   STATUS          NAMES
abcd1234      nginx   Up (Paused)     myapp
efgh5678      mysql   Exited (0)      mydb
  • Up (Paused)pause状態(一時停止中)
  • Exited (0)stop状態(停止中)
  • Up:正常に動作中

これで、どのコンテナがどんな状態かすぐに分かります。

実用的な使い方の例

実際にどんな場面で使うか、具体例をご紹介します。

一時的に処理を止めたい時(メンテナンスなど)

# Webサーバーを一時停止
docker pause webapp

# メンテナンス作業を行う
# 例:データベースのバックアップ、設定ファイルの更新など

# 作業完了後、すぐに再開
docker unpause webapp

この方法なら、ユーザーからは「サーバーがメンテナンス中」に見えますが、実際のデータは保持されています。

長時間使わない時(完全停止)

# データベースを完全停止
docker stop database

# 数時間後や翌日に再起動
docker start database

この方法なら、パソコンのリソースを完全に解放できます。

開発中の作業

# 開発中のアプリを一時停止
docker pause dev-server

# 他の作業をする

# 開発再開時にすぐ復帰
docker unpause dev-server

開発中なら、作業の続きをすぐに始められるpauseが便利です。

よくある質問

Q1. どちらの方法を選べばいいですか?

A. 用途によって使い分けましょう:

  • 短時間の中断pause(メンテナンス、一時的なリソース節約)
  • 長時間の停止stop(夜間停止、長期間使わない時)

Q2. pauseしたコンテナはリソースを使いますか?

A. CPUは使いませんが、メモリは使用したままです。完全にリソースを解放したい場合はstopを使いましょう。

Q3. データは失われませんか?

A.

  • pause:作業中のデータもそのまま保持されます
  • stop:保存済みのデータは保持されますが、保存していない作業中のデータは失われる可能性があります

Q4. 複数のコンテナを一度に操作できますか?

A. はい、可能です:

# 複数コンテナを一時停止
docker pause container1 container2 container3

# 複数コンテナを停止
docker stop container1 container2 container3

注意点

重要な注意事項

  • pauseに対応していないコンテナもあります(まれですが、古いイメージなど)
  • stopは正常な終了処理が走るため、保存されていないデータは失われる可能性があります
  • 重要なデータは定期的にバックアップを取りましょう
  • 本番環境では慎重に操作しましょう

おすすめの使い分け

場面おすすめ方法理由
短時間のメンテナンスpause素早く再開できる
長時間の停止stopリソースを完全に解放
開発中の一時中断pause作業状態を保持
夜間の定期停止stopバッテリーやリソースを節約

まとめ

Dockerの「一時停止」には2つの方法がありますが、用途に応じて使い分けることで効率よくコンテナを制御できます。

この記事の重要なポイント:

  • docker pause:その場での一時停止(unpauseで即座に再開)
  • docker stop:完全停止してプロセスを終了(startで再起動)
  • 短時間ならpause、長時間ならstopがおすすめ
  • リソース制御・メンテナンス用途にとても便利
  • 状態確認はdocker ps -aでOK

コメント

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