Nishant Bhardwaj

Jenkinsをセットアップし、最初のDeclarative Pipelineを作成した後、次のステップはDockerイメージをビルドするためのマシン準備でした。

パイプラインは最終的にGitHubからコードをクローンし、Dockerイメージをビルドしてコンテナレジストリにプッシュするため、JenkinsはDockerにアクセスする必要があります。Dockerがインストールされていない場合、JenkinsはDockerコマンドを実行できないため、docker buildステージは失敗します。

Dockerのインストール

Ubuntuマシンでは、以下のコマンドでDockerをインストールしました:

sudo apt update
sudo apt install docker.io -y

インストール完了後、以下のコマンドで検証しました:

docker --version

これにより、Dockerが正常にインストールされ、使用可能であることが確認されました。

Dockerインストールの検証

Dockerのインストールは作業の半分に過ぎません。次のステップは、現在のユーザーがDockerを使用する権限を持っているかを確認することです。

以下のコマンドを実行してください:

docker ps
期待される出力

すべてが正しく設定されている場合、以下のような出力が表示されるはずです:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

コンテナが実行されていない場合でも、上記のような空のテーブルが表示されれば、Dockerが正常に動作していることを意味します。

権限エラーが発生した場合

以下のようなエラーが表示された場合:

permission denied while trying to connect to the Docker daemon socket

現在のユーザーにDockerデーモンへのアクセス権限がないことを意味します。

まず、現在ログインしているユーザーを確認します:

whoami

出力例:

nishant

次に、ユーザーをdockerグループに追加します:

sudo usermod -aG docker $USER

このコマンドの機能

usermodはユーザーアカウントを変更します。
-aGは既存のグループを削除せずに補足グループにユーザーを追加することを意味します。
dockerはDockerデーモンと通信する権限を持つグループです。
$USERは現在ログインしているユーザー名を自動的に参照します。
変更の適用

グループメンバーシップは即座に有効になりません。

2つのオプションがあります:

オプション1(推奨):

Ubuntuセッションからログアウトして再度ログインします。これによりユーザグループが更新され、最も確実な方法です。

オプション2:

単にターミナルセッションを再起動します(または新しいターミナルを開きます)。多くの場合、ログアウトして再度ログインすることが、変更を完全に有効にするために必要です。

再度検証

もう一度コマンドを実行してください:

docker ps

権限エラーではなく空のコンテナリストが表示されるようになった場合、Dockerは正しく設定されており、Jenkinsパイプラインから使用する準備ができています。

学習ノート:これはDockerインストール後に初心者が直面する最も一般的な問題の1つです。インストールは成功しますが、ユーザーがdockerグループに追加されていないため、Dockerコマンドが失敗します。