03
第 3 章

docker コマンドで
コンテナを動かす

この章で学ぶこと
1docker run によるコンテナの起動と -d / -p / --name オプション
2docker ps / logs / exec による動作中コンテナの確認・操作
3コンテナのライフサイクル(動作中・停止中・削除済み)と stop / start / rm
解説

イメージとコンテナ

イメージ
アプリの実行に必要なファイルと設定をまとめた読み取り専用の雛形
コンテナ
イメージを起動した実体。1 つのイメージから複数を並行起動できる
docker run
イメージからコンテナを作成・起動する。ローカルに無ければ自動で pull する
docker run
状態の確認
ライフサイクル
まとめ
実演

hello-world の実行

目的hello-world コンテナを起動し、メッセージ出力後に自動停止することを確認する
実行する
コマンド
$ docker run hello-world$ docker ps -a
確認する
ポイント
初回は自動で pull が走ること / メッセージ出力後にコンテナが自動停止すること / docker ps -a で STATUS が Exited (0) になること
docker run
状態の確認
ライフサイクル
まとめ
コマンド

docker run のオプション

$ docker run -d -p 8080:80 --name web nginx
-dバックグラウンドで起動し、ターミナルをすぐ返す
-p 8080:80ホストの 8080 番ポートをコンテナの 80 番ポートに転送
--name webコンテナに web という名前を付ける
docker run
状態の確認
ライフサイクル
まとめ
実演

nginx の起動とブラウザ確認

目的nginx コンテナをバックグラウンドで起動し、ブラウザからアクセスできることを確認する
実行する
コマンド
$ docker run -d -p 8080:80 --name web nginx
確認する
ポイント
コンテナ ID が表示されプロンプトがすぐ戻ること / ブラウザで localhost:8080 に Welcome to nginx! が表示されること
docker run
状態の確認
ライフサイクル
まとめ
解説

ps / logs / exec の役割

docker ps
動作中コンテナの一覧を表示。-a で停止中も含む
docker logs
コンテナの標準出力・標準エラーを取得。-f で追従表示
docker exec -it
動作中コンテナの内部でコマンドを実行し、シェルに入れる
docker run
状態の確認
ライフサイクル
まとめ
実演

ps / logs / exec の連携操作

目的動作中の nginx コンテナに対して ps / logs / exec を順に実行し、状態を確認する
実行する
コマンド
$ docker ps$ docker logs web$ docker exec -it web bash# ls (コンテナ内)# exit
確認する
ポイント
ps で web が Up 状態であること / logs に nginx のアクセスログが出ること / exec でプロンプトがコンテナ内に切り替わること
docker run
状態の確認
ライフサイクル
まとめ
図解

コンテナのライフサイクル

コンテナの 3 状態と状態を遷移させる 4 コマンド

docker run
状態の確認
ライフサイクル
まとめ
解説

stop / start / rm

docker stop
動作中のコンテナを停止する。SIGTERM を送り、10 秒後に SIGKILL で強制終了
docker start
停止中のコンテナを同じ設定・同じコンテナ ID で再開する
docker rm
停止中のコンテナを完全に削除する。動作中には -f で強制削除
docker run
状態の確認
ライフサイクル
まとめ
実演

stop / start / rm の操作

目的web コンテナに対して stop → start → stop → rm を実行し、状態の遷移を確認する
実行する
コマンド
$ docker stop web$ docker ps -a$ docker start web$ docker ps$ docker stop web$ docker rm web$ docker ps -a
確認する
ポイント
stop 後に STATUS が Exited (0) に変わること / start で同じコンテナ ID のまま Up に戻ること / rm 後に docker ps -a から消えること
docker run
状態の確認
ライフサイクル
まとめ
まとめ

この章のまとめ

docker run でイメージからコンテナを作成・起動し、-d / -p / --name で動作を制御できる
docker ps / logs / exec で動作中コンテナの一覧確認・ログ取得・内部操作ができる
コンテナには動作中・停止中・削除済みの 3 状態があり、stop / start / rm で遷移させる
次章: ボリュームとネットワーク
docker run
状態の確認
ライフサイクル
まとめ