Docker info コマンドで Docker ログイン状態を確認する方法

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

はじめに

Docker は、アプリケーションを分離された環境でパッケージ化し実行できる強力なコンテナ化プラットフォームです。Docker を使用する際、認証が必要なコンテナレジストリと対話することがよくあります。現在のログイン状態を知ることは、Docker のワークフローを効率的に管理するために不可欠です。

この実験(Lab)では、docker info コマンドを使用して Docker のログイン状態を確認する方法を学びます。このスキルは、プライベートレジストリからイメージをプルおよびプッシュするための適切なアクセス権を持っていることを確認するのに役立つため、Docker ユーザーにとって基本です。

Docker のインストール確認

ログイン状態を確認する前に、まず Docker がシステムに正しくインストールされ、実行されていることを確認しましょう。この手順は、その後の操作のために、Docker 環境が正常に動作していることを保証します。

Docker のステータス確認

LabEx 環境でターミナルを開きます。デスクトップ環境のターミナルアイコンをクリックすることで開くことができます。

ターミナルが開いたら、次のコマンドを実行して Docker がインストールされ、実行されているか確認します。

docker --version

このコマンドは、システムにインストールされている Docker のバージョンを表示します。次のような出力が表示されるはずです。

Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.3

次に、Docker デーモンが正しく実行されているか確認しましょう。次のコマンドを実行します。

docker run hello-world

Docker が正しく動作していれば、テストイメージをダウンロードし、コンテナ内で実行します。次のような出力が表示されるはずです。

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

これにより、Docker がシステムに正しくインストールされ、実行されていることが確認できます。エラーが発生した場合は、次のコマンドで Docker サービスが実行されているか確認してください。

sudo systemctl status docker

出力には、Docker サービスがアクティブ(実行中)であることが示されるはずです。

Docker が正しく動作していることを確認したので、次のステップで docker info コマンドについて学習に進むことができます。

docker info コマンドの理解

このステップでは、docker info コマンドを調べ、Docker 環境に関する貴重な情報をどのように提供するかを理解します。

docker info コマンドの実行

docker info コマンドは、Docker インストールの包括的な概要を提供します。コンテナとイメージの数、サーバーバージョン、ストレージドライバなど、システム全体の情報を表示します。

ターミナルで docker info コマンドを実行してみましょう。

docker info

さまざまなセクションを含む詳細な出力が表示されるはずです。出力は次のようになります。

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.9.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  ...

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 1
 Server Version: 20.10.21
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 ...

 Registry: https://index.docker.io/v1/
 ...

出力には、Docker クライアントと Docker サーバーの両方に関する情報を含むいくつかのセクションが含まれています。

docker info 出力の主要セクション

docker info 出力の主要セクションをいくつか理解しましょう。

  1. Client: Docker クライアント設定に関する情報。
  2. Server: Docker サーバー(デーモン)に関する情報。
  3. Containers: システム上のコンテナの数(実行中、一時停止中、停止中を含む)。
  4. Images: システム上の Docker イメージの数。
  5. Server Version: Docker サーバーのバージョン。
  6. Storage Driver: Docker が使用するストレージドライバ。
  7. Registry: 設定された Docker レジストリに関する情報。

ログイン状態の確認には、特に Registry セクションに関心があります。これは、次のステップで詳しく見ていきます。

Docker ログイン状態の確認

docker info コマンドを理解したので、Docker のログイン状態を確認するためにどのように使用するかを説明します。

docker info でのログイン状態の解釈

docker info コマンドを実行すると、出力には Docker Hub のログイン状態に関する情報が含まれます。具体的には、Registry セクションを探します。

もう一度コマンドを実行します。

docker info

次に、出力の Registry セクションを探します。

Docker レジストリにログインしていない場合、出力には単にデフォルトのレジストリ URL が表示されます。

Registry: https://index.docker.io/v1/

ログインしている場合は、ユーザー名を含む追加の情報が表示されます。

Registry: https://index.docker.io/v1/
Username: yourusername

現時点では、Docker Hub または他のレジストリにログインしていない可能性が高いです。

Docker Hub へのログイン

Docker Hub にログインして、ログイン状態の情報がどのように変化するか見てみましょう。Docker Hub にログインするには、docker login コマンドを使用します。

docker login

このコマンドは、Docker Hub のユーザー名とパスワードを要求します。

Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:
Password:

この実験の目的では、実際の資格情報を入力する必要はありません。代わりに、Ctrl+C を押してログインプロセスをキャンセルします。

ログイン状態を確認する代替方法

docker info コマンドを使用する以外に、Docker 構成ファイルを調べることによって、Docker Hub にログインしているかどうかを確認することもできます。

ls -la ~/.docker/

ログインしている場合は、このディレクトリに config.json というファイルが表示されます。このファイルには、認証情報が含まれています。その内容は以下で確認できます。

cat ~/.docker/config.json

ログインしていない場合、ファイルが存在しないか、認証情報が含まれていない可能性があります。

Docker レジストリからのログアウト

ログイン状態の確認方法とログインの試行方法を理解したので、Docker レジストリからログアウトする方法を学びましょう。

docker logout コマンドの使用

Docker レジストリからログアウトするには、docker logout コマンドを使用できます。このコマンドは、指定されたレジストリ、または指定がない場合はデフォルトのレジストリの保存された資格情報を削除します。

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

docker logout

ログインしていなかった場合は、次のようなメッセージが表示されます。

Not logged in to https://index.docker.io/v1/

ログインしていて、ログアウトが成功した場合は、次のように表示されます。

Removing login credentials for https://index.docker.io/v1/

ログアウト状態の確認

ログアウト後、docker info コマンドを使用してログイン状態を確認しましょう。

docker info

もう一度 Registry セクションを探します。これで、ユーザー名情報なしでレジストリ URL のみが表示されるはずです。

Registry: https://index.docker.io/v1/

Docker 構成ファイルをもう一度確認することもできます。

cat ~/.docker/config.json

以前にログインしていた場合、ファイルは更新され、ログアウトしたレジストリの認証情報が削除されます。

Docker レジストリ認証の理解

Docker は、トークンベースの認証を使用してレジストリへのアクセスを管理します。レジストリにログインすると、Docker は認証トークンを構成ファイル (~/.docker/config.json) に保存します。このトークンは、ログアウトするか、トークンの有効期限が切れるまで、レジストリとのその後のやり取りに使用されます。

ログイン状態の確認方法と認証の管理方法を理解することは、特にプライベートレジストリを操作する場合、安全な Docker 操作に不可欠です。

まとめ

この実験では、Docker レジストリ認証を管理するための重要なスキルを学びました。

  1. Docker が正しくインストールされ、実行されていることを確認する
  2. docker info コマンドを使用して、Docker 環境に関する詳細情報を表示する
  3. docker info コマンドを使用して、Docker のログイン状態を確認する
  4. Docker Hub へのログインプロセスを理解する
  5. Docker レジストリからログアウトし、ログアウトが成功したことを確認する

これらのスキルは、Docker を使用する上で不可欠であり、特にプライベートレジストリと対話したり、認証資格情報を保護したりする必要がある場合に重要です。

これで、Docker のログイン状態を自信を持って管理し、今後のプロジェクトで安全かつ効率的な Docker 操作を確保するための知識が得られました。