はじめに
Dockerは、コンテナ化された環境でアプリケーションを構築、展開、管理するために広く使用されるプラットフォームです。場合によっては、独自のDockerイメージを保存および管理するために、プライベートなDockerレジストリと連携する必要があります。このチュートリアルでは、プライベートなDockerレジストリでの認証プロセスを案内し、Dockerイメージへの安全なアクセスを確保します。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
Dockerは、コンテナ化された環境でアプリケーションを構築、展開、管理するために広く使用されるプラットフォームです。場合によっては、独自のDockerイメージを保存および管理するために、プライベートなDockerレジストリと連携する必要があります。このチュートリアルでは、プライベートなDockerレジストリでの認証プロセスを案内し、Dockerイメージへの安全なアクセスを確保します。
Dockerレジストリは、Dockerイメージが保存および配布される中央のハブです。これらは、開発者や組織がDockerイメージを管理および共有するための手段を提供します。Docker Hubなどの公開Dockerレジストリがありますが、組織はしばしば独自のプライベートなDockerレジストリを維持して、独自の所有または機密なDockerイメージを保存および管理する必要があります。
プライベートなDockerレジストリは、一般公開ではアクセスできないレジストリです。通常、組織自身のインフラ内またはクラウドプラットフォーム上にホストされており、レジストリへのアクセスは、認証済みのユーザーまたは特定のチームに制限されています。
プライベートなDockerレジストリには、次のようないくつかの利点があります。
セキュリティ:プライベートなレジストリにDockerイメージをホストすることで、組織はアクセスをより良く制御し、機密または独自のイメージのセキュリティを確保できます。
コンプライアンス:プライベートなレジストリは、データ主権や業界固有の規制など、規制およびコンプライアンス要件を満たすのに役立ちます。
カスタマイズ:組織は、独自の認証および承認システムとの統合など、特定のニーズに合わせてプライベートなレジストリを構成およびカスタマイズできます。
パフォーマンス:組織のインフラ内にプライベートなレジストリをホストすることで、特に多数のDockerイメージや頻繁なイメージ更新を行う組織にとって、イメージのプルとプッシュのパフォーマンスと信頼性を向上させることができます。
プライベートなDockerレジストリとやり取りするには、レジストリでの認証が必要です。これには、ユーザー名とパスワードなどの有効な資格情報を提供するか、トークンベースの認証やシングルサインオン(SSO)システムとの統合など、他の認証方法を使用することが含まれます。
次のセクションでは、プライベートなDockerレジストリでの認証方法を探ります。
プライベートなDockerレジストリにアクセスするには、レジストリでの認証が必要です。Dockerは、プライベートなレジストリに対していくつかの認証方法をサポートしており、それには次のものが含まれます。
最も一般的な認証方法は、ユーザー名とパスワードを使用することです。プライベートなレジストリにイメージをプルまたはプッシュする際に、これらの資格情報を提供できます。
docker login <private-registry-url>
このコマンドが実行されると、ユーザー名とパスワードの入力を求められ、Dockerは資格情報をシステム上に安全に保存します。
一部のプライベートなレジストリでは、トークンベースの認証が使用されており、トークンを取得してレジストリでの認証に使用します。トークンの取得と使用のプロセスは、レジストリの実装によって異なります。
## プライベートなレジストリからトークンを取得する
token=$(curl -s -u username:password https://private-registry.example.com/token)
## トークンを使用してレジストリでの認証を行う
docker login -u token -p $token https://private-registry.example.com
プライベートなレジストリは、シングルサインオン(SSO)システムと統合することもでき、既存のSSO資格情報を使用してユーザーが認証できるようになります。構成と統合のプロセスは、特定のSSOシステムとプライベートなレジストリの実装に依存します。
どの認証方法を使用する場合でも、資格情報またはトークンを安全に保存および管理し、プライベートなレジストリへのアクセスを認証済みのユーザーまたはチームに制限することが重要です。
次のセクションでは、Dockerを構成してプライベートなレジストリにアクセスする方法を探ります。
プライベートなDockerレジストリにアクセスするには、Dockerを構成してレジストリを認識させ、必要な認証資格情報を提供する必要があります。
最初のステップは、Dockerデーモンを構成してプライベートなレジストリを信頼するようにすることです。これは、Dockerデーモンの設定ファイルの insecure-registries
設定にプライベートなレジストリのURLを追加することで行えます。
## Dockerデーモンの設定ファイルを編集する
sudo vi /etc/docker/daemon.json
## "insecure-registries" リストにプライベートなレジストリのURLを追加する
{
"insecure-registries": ["private-registry.example.com"]
}
## Dockerデーモンを再起動する
sudo systemctl restart docker
次に、Docker CLIを構成してプライベートなレジストリでの認証を行う必要があります。これは、通常 ~/.docker/config.json
にあるDockerの設定ファイルにレジストリの資格情報を追加することで行えます。
## プライベートなレジストリにログインする
## ログインコマンドは ~/.docker/config.json ファイルを作成または更新します
あるいは、手動で ~/.docker/config.json
ファイルを編集してレジストリの資格情報を追加することもできます。
{
"auths": {
"private-registry.example.com": {
"username": "your-username",
"password": "your-password"
}
}
}
DockerデーモンとDocker CLIを構成したら、標準のDockerコマンドを使用してプライベートなレジストリにイメージをプルおよびプッシュできます。
## プライベートなレジストリからイメージをプルする
docker pull private-registry.example.com/my-app:latest
## プライベートなレジストリにイメージをプッシュする
docker push private-registry.example.com/my-app:latest
これらの手順に従えば、Dockerを成功裏に構成してプライベートなDockerレジストリにアクセスし、相互作用させることができます。
このチュートリアルでは、プライベートなDockerレジストリでの認証方法を学びました。また、プライベートなレジストリへのアクセスのためにDockerを構成する手順を学び、Dockerイメージを安全に管理および展開できるようになりました。認証プロセスを理解することで、Dockerベースのアプリケーションの整合性とセキュリティを確保できます。