はじめに
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 出力の主要セクションをいくつか理解しましょう。
- Client: Docker クライアント設定に関する情報。
- Server: Docker サーバー(デーモン)に関する情報。
- Containers: システム上のコンテナの数(実行中、一時停止中、停止中を含む)。
- Images: システム上の Docker イメージの数。
- Server Version: Docker サーバーのバージョン。
- Storage Driver: Docker が使用するストレージドライバ。
- 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 レジストリ認証を管理するための重要なスキルを学びました。
- Docker が正しくインストールされ、実行されていることを確認する
docker infoコマンドを使用して、Docker 環境に関する詳細情報を表示するdocker infoコマンドを使用して、Docker のログイン状態を確認する- Docker Hub へのログインプロセスを理解する
- Docker レジストリからログアウトし、ログアウトが成功したことを確認する
これらのスキルは、Docker を使用する上で不可欠であり、特にプライベートレジストリと対話したり、認証資格情報を保護したりする必要がある場合に重要です。
これで、Docker のログイン状態を自信を持って管理し、今後のプロジェクトで安全かつ効率的な Docker 操作を確保するための知識が得られました。



