コンテナのアクセスと管理

DockerBeginner
オンラインで実践に進む

はじめに

Docker は、コンテナという概念を導入することで、アプリケーションのデプロイと管理の方法に革命をもたらしました。コンテナは、Docker がインストールされているあらゆるシステムで動作する、軽量でポータブルな環境です。開発者やシステム管理者にとって、効率的なアプリケーションのデプロイとメンテナンスを行うために、Docker コンテナの管理をマスターすることは極めて重要です。このチャレンジでは、Docker コマンドラインインターフェース(CLI)を使用したコンテナ管理の必須要素をカバーする一連のタスクを通じて、あなたの Docker スキルを試します。

このチャレンジでは、Docker コンテナを扱う際に遭遇する可能性のある、現実世界の状況を反映したさまざまなシナリオをナビゲートします。コンテナの起動やログの検査から、内部でのコマンド実行、そして最終的なリソースのクリーンアップまで、Docker コンテナ操作のライフサイクル全体を実地で体験します。

それでは、Docker コンテナ管理の技術をマスターするための第一歩を踏み出しましょう!

コンテナの起動

Docker のワークフローにおける最初のステップは、多くの場合、コンテナの起動です。このタスクでは、コンテナを起動し、そのログにアクセスする方法を学びます。これは、トラブルシューティングやコンテナの動作監視において非常に重要なスキルです。

タスク

以下のタスクを完了させてください:

  1. nginx イメージをベースにした、my-container という名前のコンテナを起動する。
  2. my-container コンテナのログを表示する。

要件

  • コンテナの起動には docker run コマンドを使用すること。
  • コンテナログの表示には docker logs コマンドを使用すること。
  • すべての操作は /home/labex/project ディレクトリで行うこと。

このステップを正常に完了した後、docker ps コマンドを使用すると、実行中のコンテナを確認できるはずです。出力は以下のようになります:

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
3a7d9f642a7f   nginx     "/docker-entrypoint.…"   12 seconds ago   Up 11 seconds   80/tcp    my-container

この出力は、Nginx コンテナが起動して動作しており、Web コンテンツを提供する準備ができていることを示しています。

最初のコンテナの起動、お疲れ様でした!コンテナを起動し、そのログにアクセスできることは、Docker を扱う上での基本です。次に、実行中のコンテナを停止する方法を見ていきましょう。これもコンテナ管理における不可欠なスキルです。

✨ 解答を確認して練習

コンテナの停止

コンテナを実行することも重要ですが、適切に停止させる方法を知っておくことも同様に重要です。このスキルは、メンテナンスの実施、設定の更新、あるいは単にシステムリソースを解放したい場合に特に役立ちます。

タスク

以下のタスクを完了させてください:

  1. my-container という名前のコンテナを停止する。

要件

  • コンテナの停止には docker stop コマンドを使用すること。
  • すべての操作は /home/labex/project ディレクトリで行うこと。

コンテナを正常に停止した後、docker ps -a を使用して、停止したものを含むすべてのコンテナを表示できます。出力は以下のようになります:

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS                      PORTS     NAMES
3a7d9f642a7f   nginx     "/docker-entrypoint.…"   2 minutes ago   Exited (0) 10 seconds ago             my-container

my-container のステータスが「Exited」に変わっていることに注目してください。これは、コンテナが正常に停止したことを示しています。

コンテナの停止、お見事です!このスキルは、コンテナのライフサイクルを効果的に管理するために不可欠です。コンテナの起動と停止をマスターしたところで、次はより高度なトピックである、実行中のコンテナ内でのコマンド実行に進みましょう。

✨ 解答を確認して練習

コンテナ内でのコマンド実行

Docker の強力な機能の一つは、実行中のコンテナ内部でコマンドを実行できることです。この機能は、デバッグ、メンテナンス作業の実行、あるいはコンテナを停止させずに設定を更新する場合などに非常に価値があります。

タスク

以下のタスクを完了させてください:

  1. ubuntu イメージをベースにした、my-shell-container という名前のコンテナを起動する。このコンテナはバックグラウンドで実行し続ける必要があります。
  2. my-shell-container コンテナ内で echo "Hello World" コマンドを実行する。

要件

  • コンテナの起動には docker run コマンドを使用すること。
  • 起動後、コンテナがアクティブな状態を維持するようにすること。
  • コンテナ内でのコマンド実行には docker exec コマンドを使用すること。
  • すべての操作は /home/labex/project ディレクトリで行うこと。

ヒント

ubuntu イメージをベースにしたコンテナは、長時間実行されるコマンドが指定されていない限り、起動直後に終了してしまいます。コンテナをアクティブに保つために、起動時に sleep infinity のようなコマンドを実行することを検討してください。例:

docker your-command sleep infinity

コンテナを起動した後、docker ps コマンドを使用して実行中であることを確認できます。出力は以下のようになります:

CONTAINER ID   IMAGE     COMMAND            CREATED          STATUS          PORTS     NAMES
1a2b3c4d5e6f   ubuntu    "<command>"        30 seconds ago   Up 29 seconds             my-shell-container

コンテナ内で echo コマンドを実行すると、以下の出力が表示されるはずです:

Hello World

これにより、実行中のコンテナ内でコマンドを正常に実行できたことが証明されます。

素晴らしい!実行中のコンテナ内でコマンドを実行し、対話する方法を学びました。このスキルにより、コンテナの管理とメンテナンスの可能性が大きく広がります。最後のステップでは、不要になったコンテナを削除してクリーンアップする方法を学びます。

✨ 解答を確認して練習

コンテナの削除

Docker を使用していると、一時的なタスクやテストのためにコンテナを作成することがよくあります。システムリソースを解放し、Docker 環境を整理された状態に保つために、不要になったコンテナをクリーンアップすることは重要です。

タスク

以下のタスクを完了させてください:

  1. my-shell-container という名前のコンテナを停止し、削除する。

要件

  • コンテナの停止には docker stop コマンドを使用すること。
  • コンテナの削除には docker rm コマンドを使用すること。
  • すべての操作は /home/labex/project ディレクトリで行うこと。

このステップを完了した後、docker ps -a を使用して my-shell-container が削除されたことを確認できます。コンテナリストに表示されなくなるはずです:

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

これは、システムからコンテナが正常に削除されたことを示しています。

最終ステップの完了、おめでとうございます!不要なコンテナを削除して Docker 環境をクリーンアップする方法を学びました。このスキルは、効率的で整理された Docker ワークスペースを維持するために不可欠です。

✨ 解答を確認して練習

まとめ

この包括的なチャレンジを通じて、Docker コンテナ管理の重要な側面を体験しました。コンテナの起動、ログへのアクセス、実行中のコンテナの停止、コンテナ内でのコマンド実行、そして不要になったコンテナの削除ができることを証明しました。

これらのスキルは Docker を効果的に活用するための基礎となり、開発やテストから本番環境へのデプロイまで、さまざまなシナリオで役立ちます。コンテナ化されたアプリケーションを扱うすべての人にとって非常に価値のある、Docker CLI の実践的な経験を積むことができました。

Docker の学習を続けるにあたって、これらの基本操作がより複雑な Docker ワークフローの構成要素であることを忘れないでください。これらのスキルを定期的に練習することで、コンテナ管理に習熟し、最終的にはより効率的で合理化された開発・デプロイプロセスを実現できるようになります。

引き続き Docker の機能を探索し、さまざまなイメージやコンテナ構成を試してみてください。コンテナ化の世界は広大で可能性に満ちています。あなたは今、自信を持ってその世界をナビゲートするための準備が整いました!