Dockerを使っていると、こんなことを思ったことはありませんか?
「コンテナを一旦止めたいけど、削除はしたくない」
「パソコンのリソースを節約したいけど、また後で使いたい」
「メンテナンス中だけコンテナを止めておきたい」
そんな時に便利なのが、Dockerコンテナの「一時停止」機能です。
コンテナを完全に削除してしまうと、また一から作り直さなければなりません。
でも一時停止なら、必要な時にすぐ再開できるので、とても便利です。
この記事では、Dockerでコンテナを一時的に止める2つの方法(pause
とstop
)と、その違い、使い分けのポイントについて、初心者の方にも分かりやすく解説します。
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つの方法の違いを表で比較してみましょう。
項目 | pause | stop |
---|---|---|
プロセス | 一時停止(保留状態) | 完全に終了 |
状态の保持 | メモリ上に残る | メモリから消える |
再開方法 | unpause | start |
再開の速度 | 高速(即座) | 数秒かかることもある |
データの保持 | 作業中のデータも保持 | 保存済みのデータのみ保持 |
リソース使用 | メモリは使用中 | メモリと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
コメント