導入
動いているコンテナの様子を知るには、ログを見る docker logs と、コンテナの中でコマンドを実行する docker exec を使います。トラブル調査の基本です。
説明
docker logs <名前|ID>:コンテナが標準出力に吐いたログを表示する。サーバーの起動メッセージやエラーを確認できる。docker exec -it <名前|ID> <コマンド>:動作中のコンテナの中でコマンドを実行する。-itを付けてshやbashを渡すと、コンテナ内のシェルに入って対話操作できる。
docker logs web # web コンテナのログを見る
docker exec -it web sh # web コンテナの中のシェルに入る
docker exec web whoami # コンテナ内で whoami を1回だけ実行
exec は「すでに動いているコンテナ」に対して使います。止まっているコンテナには使えない点に注意してください(先に docker start が必要)。
やってみよう
- まず
docker run -d -p 8080:80 --name web nginxで web を起動しましょう。 docker logs webでログを確認し、docker exec web whoamiでコンテナ内のユーザー名(root)を表示してみましょう。