Docker での Jenkins の調査

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

はじめに

この実験では、LabEx の Jenkins 環境において、Jenkins がどのように Docker コンテナ内で実行されているかを調査します。Jenkins サービスはすでにインストールされ起動済みであり、http://localhost:8080 で利用可能です。そのため、新規インストールを待つ必要はなく、Docker のデプロイメントモデルを理解することに集中できます。

以下の操作を練習します。

  • ホスト上で Docker が利用可能であることを確認する。
  • 実行中の Jenkins コンテナとイメージを特定する。
  • Jenkins が使用している公開ポートを調査する。
  • コンテナ内の Jenkins ホームディレクトリの場所を確認する。
  • コンテナのログを読み取り、Jenkins の Web インターフェースを開く。

これらは、Docker ベースの開発環境やトレーニング環境で Jenkins を運用するための実践的なスキルです。

Docker 環境の調査

このステップでは、Docker が利用可能であること、および Jenkins 環境が Docker 上で実行されていることを確認します。

LabEx VM でターミナルを開き、Docker のバージョンを確認します。

docker --version

以下のような出力が表示されるはずです。

Docker version ...

次に、実行中のコンテナを一覧表示します。

docker ps

jenkins という名前のコンテナを探してください。これがこの実験全体で使用する Jenkins コントローラーです。出力にはいくつかの列がありますが、重要なフィールドはイメージ名、ポートマッピング、およびコンテナ名です。

CONTAINER ID   IMAGE                    ...   PORTS                  NAMES
...            jenkins/jenkins:latest   ...   0.0.0.0:8080->8080/tcp jenkins

重要な確認事項は、コンテナ名、イメージ、およびポートマッピングです。この実験では、コンテナの起動や削除を行う必要はありません。

Jenkins イメージの調査

このステップでは、実行中の Jenkins コンテナで使用されている Docker イメージを特定します。

以下のコマンドを実行します。

docker inspect jenkins --format '{{.Config.Image}}'

これにより、コンテナの作成に使用されたイメージ名が表示されます。この環境では、Jenkins イメージが表示されるはずです。

jenkins/jenkins:latest

ローカルのイメージを一覧表示することもできます。

docker images jenkins/jenkins

正確なイメージ ID や作成日時は変わる可能性がありますが、リポジトリは jenkins/jenkins になっているはずです。

REPOSITORY        TAG       IMAGE ID       CREATED       SIZE
jenkins/jenkins   latest    ...            ...           ...

これにより、ブラウザで実行されているサービスと、Jenkins を提供しているコンテナイメージを関連付けることができます。

Jenkins のポートとデータの調査

このステップでは、コンテナが使用しているネットワークポートと Jenkins ホームディレクトリを調査します。

Jenkins は Web インターフェース用にポート 8080 を使用します。公開されているポートを確認します。

docker port jenkins

以下のように、ホスト上でポート 8080 が公開されていることが確認できるはずです。

8080/tcp -> 0.0.0.0:8080
8080/tcp -> :::8080

次に、コンテナ内の Jenkins ホームディレクトリを確認します。

docker exec jenkins ls /var/jenkins_home

ジョブ、プラグイン、ログ、設定ファイルなどの Jenkins データが表示されるはずです。

config.xml
jobs
plugins
...

Jenkins は設定やジョブデータを /var/jenkins_home に保持しているため、このディレクトリはトラブルシューティングの際やバックアップを取る際に最も重要な場所となります。

Jenkins コンテナログの読み取り

このステップでは、Jenkins コンテナのログを読み取ります。Jenkins が起動しない場合や予期しない動作をする場合、ログは最初に確認すべき場所です。

以下を実行します。

docker logs --tail 30 jenkins

出力には、Jenkins の起動メッセージや実行時のメッセージが含まれます。Jenkins のバージョン、プラグインに関するメッセージ、または HTTP サーバーの起動ログなどが確認できるでしょう。

正確な行の内容は異なる場合がありますが、このコマンドで実行中の jenkins コンテナの最新のログが返されます。

Jenkins Web インターフェースを開く

このステップでは、調査した Docker コンテナと Jenkins Web インターフェースを接続します。

デスクトップインターフェースから Firefox ブラウザを開きます。ブラウザで以下の URL にアクセスします。

http://localhost:8080

この環境ではログインは不要です。

Jenkins ダッシュボードが表示されるはずです。

Jenkins dashboard

これにより、jenkins Docker コンテナがポート 8080 を介して Jenkins Web UI を提供していることが確認できました。

まとめ

この実験では、Docker ベースで実行されている Jenkins デプロイメントを調査しました。

以下の操作を練習しました。

  • Docker が利用可能であることを確認する。
  • 実行中の Jenkins コンテナを特定する。
  • Jenkins Docker イメージを調査する。
  • ポート 8080 の公開状況を確認する。
  • /var/jenkins_home を調査する。
  • Jenkins コンテナのログを読み取る。
  • Jenkins Web ダッシュボードを開く。

これらのスキルは、コントローラーをゼロから再構築することなく、Docker ベースの Jenkins 環境を理解し、トラブルシューティングを行うのに役立ちます。