docker container

Docker コンテナの状態遷移

Dockerコンテナは、作成から削除までの間に主に5つの状態を遷移する。基本的な流れは 作成(Created) → 実行(Running) → 停止 (Stopped )→ 削除(Removed) であり、状況に応じて 実行中に一時停止(Paused)が挟まる場合がある。

状態説明
Created作成済みだが起動していない
Running実行中(プロセスが動作中)
Paused一時停止中(メモリは保持)
Stopped (Exited)停止済み(プロセスは終了)
Removed削除済み

docker container コマンド

docker container run コマンド
 【処理】 イメージからコンテナを作成して即座に起動する
 【書式】 docker container run [オプション] イメージ名 [コマンド]

# バックグランド実行
docker container run -d nginx 
docker container run --detach nginx

# 対話的モード
docker container run -it ubuntu bash
docker container run -it alpine sh

# コンテナ名指定
docker container run --name web my-image

# ポートマッピング(ホストポート:コンテナポート)
docker container run -p 8080:80 my-image
docker container run --publish 8080:80 my-image

# 環境変数を設定
docker container run -e NODE_ENV=production my-image
docker container run --env NODE_ENV=production my-image

# ボリュームのマウント(ホスト:コンテナ)
docker container run -v /data:/app/data my-image
docker container run --volume /data:/app/data my-image

# ネットワーク指定
docker container run --network mynet my-image

# 終了時に自動削除
docker container run --rm my-image

# 作業ディレクトリ
docker container run -w /app my-image
docker container run --workdir /app my-image

# メモリ制限
docker container run -m 512m my-image
docker container run --memory 512m my-image

# CPU制限
docker container run --cpus 1.5 my-image

# 再起動ポリシー
docker container run --restart always my-image

docker container create コマンド
 【処理】 コンテナを作成するだけで、起動はしない
 【書式】 docker container create [オプション] イメージ名 [コマンド]

オプション内容
create --name
【例】--name web
コンテナ名指定
create -p / --publish
【例】-p 8080:80
ポートマッピング(ホストポート:コンテナポート)
create -e / --env
【例】-e NODE_ENV=production
環境変数を設定
create -v / --volume
【例】-v /data:/app/data
ボリュームのマウント(ホスト:コンテナ)
create --network
【例】--network mynet
ネットワーク指定
create --rm終了時に自動削除
create -w / --workdir
【例】-w /app
作業ディレクトリ
create -m / --memory
【例】-m 512m
メモリ制限
create --cpus
【例】--cpus 1.5
CPU制限
create --restart
【例】--restart always
再起動ポリシー

docker container start コマンド
 【処理】 停止中のコンテナを起動する
 【書式】 docker container start [オプション] コンテナ名

オプション内容
start -a / --attach標準出力/エラーにアタッチ
start -i / --interactive標準入力を開く

docker container stop コマンド
 【処理】 実行中のコンテナを停止する(正常終了を待つ)
 【書式】 docker container stop [オプション] コンテナ名

オプション内容
stop -t / --time
【例】-t 30
停止までの待機時間(秒、デフォルト:10)

docker container pause コマンド
 【処理】 コンテナのプロセスを一時停止する
 【書式】 docker container pause コンテナ名

docker container unpause コマンド
 【処理】 コンテナのプロセスを再開する
 【書式】 docker container unpause コンテナ名

docker container rm コマンド
 【処理】停止中のコンテナを削除する
 【書式】 docker container rm [オプション] コンテナ名

オプション内容
stop -f / --force実行中でも強制削除
stop -v / --volumes関連する匿名ボリュームも削除

docker container ls コマンド
 【処理】 コンテナの一覧を表示する
 【書式】 docker container ls [オプション]

オプション内容
ls -a / --allすべて表示(停止中含む)
ls -q / --quietIDのみ表示
ls -f / --filter
【例】-f status=running
フィルタ条件
ls --format
【例】--format "table {{.Names}}\t{{.Status}}"
出力フォーマット指定
ls -n
【例】-n 5
最新のN個を表示
ls -s / --sizeファイルサイズを表示

docker container logsコマンド
 【処理】 コンテナのログ(標準出力・標準エラー出力)を表示する
 【書式】 docker container logs [オプション] コンテナ名

オプション内容
logs -f / --followリアルタイム表示
logs --tail
【例】--tail 100
最後のN行を表示
logs -t / --timestampsタイムスタンプ表示
logs --since
【例】--since 1h
指定時刻以降
logs --until
【例】--until 5m
指定時刻まで

docker container exec コマンド
 【処理】 実行中のコンテナ内でコマンドを実行する
 【書式】 docker container exec [オプション] コンテナ名 [コマンド]

オプション内容
exec コンテナ名 cat FILEファイル確認
exec コンテナ名 tail -f LOGログ確認
exec コンテナ名 ps auxプロセス確認
exec コンテナ名 curl URL疎通確認
exec -it
【例】exec -it コンテナ名 bash
対話的モード
exec -d / --detachバックグラウンド実行
exec -u / --user
【例】exec -u root コンテナ名 bash
実行ユーザー指定
exec -w / --workdir
【例】-w /app コンテナ名 ls
作業ディレクトリ指定
exec -e / --env
【例】-e DEBUG=true コンテナ名 npm test
環境変数設定