‫この講義では､ コンテナの起動方法を知っていることが要件となります｡
‫ここでコマンドラインで行うのは､ Dockerコマンドを実行して､ 実行中のコンテナの内部で何が起こっているかを理解することです｡
‫そこで何が起こっているのか､ 複数の方法で見ることができるのです｡
‫トップコマンドは､ コンテナの中で起こっていることのプロセスリストであることを説明しましたが､
‫他にもできることがあります｡ inspectコマンドを使えば､ 実際にコンテナがどのように起動し､
‫どのように設定されているかの詳細を見ることができます｡
‫statsコマンドを実行すると､ すべてのコンテナと各コンテナのパフォーマンス統計がリアルタイムで表示されます｡
‫潜入してみよう｡ これらのコマンドのいくつかと､ それらがコンテナでどのように動作するかを見るには､ 実際にいくつかのコンテナを起動する必要があります｡
‫最初に始めるのは､ 前回と同じくNginxのコンテナです｡
‫docker container run -d --name, nginxとします｡ Nginxのイメージを使用します｡
‫OKです｡
‫次に､ 2つ目に使うのは別のMySQLサーバーなので､ docker container run
‫-d --name mysqlと､ 先ほどのように環境変数も指定する必要があります｡
‫ということで､ RANDOM_ROOT_PASSWORD=true そして､
‫mysqlのイメージ｡
‫なお､ Docker Hubにあるように､ mysqlのイメージでは､ パスワードに3つのオプションのうち1つを指定する必要があると表示されます｡
‫コマンドラインでパスワードを指定するか､ パスワードなしで起動するか､ あるいは私がここで行ったように､
‫最初の起動時に､ 数分前の演習で行ったように､ 実際にランダムなパスワードを作成するようにすることができます｡
‫OKです｡
‫docker container lsを実行すると､
‫2つのコンテナが起動しているのが確認できるはずです｡
‫素晴らしい｡
‫そこで､ 以前､ docker container topを使ったことがあります｡
‫mysqlだけを指定すると､ 実際にそのコンテナ内で動作しているプロセスが一覧表示されるのがわかる｡
‫同じように､ docker container top nginxを実行すると､ そのコンテナで動作しているプロセスが一覧表示されます｡
‫もう一つの方法は､ このコンテナが起動されたときにどのように構成されているか､ そのすべてのメタデータの構成を見るために､
‫実際にinspectコマンドを使用することができます｡ dockerコンテナのinspect｡ そして､ mysqlと言えば､ このコンテナがどのように起動されたかに関するすべてのデータのJSON配列が返ってきます｡
‫このコースを通して､ 多くのことが理解できるようになるでしょう｡
‫ご覧の通り､ 明らかにこのコンテナに関するデータが多いですね｡ しかし､ この設定データは興味深いものですが､ アクティブなコンテナについて､
‫そしてそれが何をしているのかについては､ 何も教えてくれません｡
‫そこで､ docker container statsコマンドを使用してみましょう｡
‫ヘルプを出すと､ 実際にコンテナを指定してそれだけを表示させることができることがわかると思います｡
‫また､
‫空のままdocker container statsと入力すると､ コンテナに関するライブパフォーマンスデータのストリーミングビューが返されます｡
‫残念ながら､ コンテナIDしか表示されず､ コンテナ名は表示されませんが､ CPUの欄で数秒ごとに何かが変化していることが分かります｡
‫もちろん､ 本番環境では､ これらすべてを追跡するために､ より複雑なモニタリングとパフォーマンスのソリューションが必要になるでしょう｡
‫データベースが大きすぎるためにマシンのRAMを使い果たしていないか､ 制御不能なプロセスのためにハードディスクが一杯にならないか､
‫などを確認する必要があるローカルマシンには本当に最適です｡
‫これは､ すべてがメモリの制限内にあること､ 大量のネットワークを使用していないこと､ そしてブロックI/Oは実際にはディスクパフォーマンスのためのものであることを確認するための簡単なコマンドです｡
‫ご覧の通り､ これらのコンテナは何もしていないのです｡
‫これを解消するために､ Control c. コンテナIDをstatsコマンドと照合するために､
‫docker container lsを素早く実行してみましょう｡
‫つまり､ 起動時に400MG近くを実際に使っているのは､ mysqlサーバーであることがわかります｡
‫この講義でやったことをおさらいすると､ 実は最初にdocker container topコマンドを使って､
‫1つのコンテナ内で実行されるすべてのプロセスをリストアップしました｡
‫そして､ コンテナの検査に入りました｡ コンテナインスペクトでは､ 実際にコンテナがどのように実行されたか､
‫何が一緒に実行されたか､ 起動時の環境やオプションはどうなっていたかを確認することができるのです｡
‫コンテナ統計は､
‫すべてのコンテナと､ それらが実行中にどのようなリソースを消費しているかをライブで更新する機能です｡