###############導入###
Docker Compose は、複数コンテナーの Docker アプリケーションを定義および実行するためのツールです。これにより、開発者はアプリケーション スタックを YAML ファイルとして定義できるため、いくつかのコマンドを使用するだけで複雑な環境を簡単に作成できます。ただし、プライベート リポジトリで Docker Compose を使用するのは少し難しい場合があります。この記事では、さまざまな認証方法とその例を含め、Docker Compose でプライベート リポジトリを使用する方法を説明します。
プライベート倉庫とは何ですか?
Docker Compose とプライベート ウェアハウスの使用
Docker Config.json ファイル
この例では、ユーザーのホーム ディレクトリにある config.json ファイルをコンテナのルート ディレクトリにマウントします。これにより、コンテナ内で実行されている Docker デーモンが、ファイルに保存されている認証情報にアクセスできるようになります。
###環境変数###Docker Compose .env ファイル
Docker Compose を使用すると、.env ファイルで環境変数を定義できます。このファイルは、docker-compose コマンドの実行時に自動的にロードされます。以下に例を示します −
リーリーこのアプローチは、YAML ファイル内で環境変数を直接使用する方法に似ていますが、資格情報を別のファイルに保持できます。
###例###プライベート ウェアハウスと Docker Config.json ファイル
この例では、base64 でエンコードされた文字列を認証資格情報として使用します。ユーザー名とパスワードをコロンで区切ってエンコードした文字列
さあ、プライベート リポジトリを使用する Docker Compose ファイルを作成しましょう −
リーリーこの例では、プライベート リポジトリのイメージ「myprivaterepo/myapp」を使用する「app」というサービスを定義します。また、コンテナ内で実行されている Docker デーモンが資格情報にアクセスできるように、config.json ファイルをボリュームとしてコンテナにマウントします。
プライベート リポジトリと環境変数
セルフホスト型レジストリでホストされているプライベート リポジトリがあり、それを Docker Compose ファイルで使用したいとします。まず、認証資格情報を環境変数として設定します -
リーリーさあ、プライベート リポジトリを使用する Docker Compose ファイルを作成しましょう −
リーリーこの例では、プライベート リポジトリのイメージ「myprivaterepo/myapp」を使用する「app」というサービスを定義します。また、認証資格情報の REGISTRY_USERNAME および REGISTRY_PASSWORD 環境変数も設定します。
この Docker Compose ファイルを実行するには、次のコマンドを使用できます -
リーリーこれにより、「アプリ」サービスが開始され、プライベート リポジトリからイメージがプルされます。
プライベート ウェアハウスと Docker Compose .env ファイル
セルフホスト型レジストリでホストされているプライベート リポジトリがあり、それを Docker Compose ファイルで使用したいとします。まず、認証資格情報を含む .env ファイルを作成します -
リーリーさあ、プライベート リポジトリを使用する Docker Compose ファイルを作成しましょう −
リーリーこの例では、プライベート リポジトリのイメージ「myprivaterepo/myapp」を使用する「app」というサービスを定義します。また、env_file ディレクティブを使用して、.env ファイルで定義された環境変数をロードしました。
要运行此Docker Compose文件,我们可以使用以下命令−
docker-compose up
这将启动 "app" 服务并从我们的私有仓库拉取镜像。
如果您在一个swarm上运行Docker,您可以使用Docker配置来存储您的身份验证凭据。要在Docker Compose中使用Docker配置,我们需要创建一个包含我们身份验证凭据的配置文件−
echo "password" | docker secret create registry_password - echo "username" | docker secret create registry_username -
现在,让我们创建一个使用我们的私有仓库的Docker Compose文件−
version: '3.8' services: app: image: myprivaterepo/myapp secrets: - registry_username - registry_password
In this example, we're defining a service called "app" that uses image "myprivaterepo/myapp" from our private repository. We're also using secrets directive to load registry_username and registry_password secrets into container.
要运行此Docker Compose文件,我们可以使用以下命令−
docker-compose up
这将启动 "app" 服务并从我们的私有仓库拉取镜像。
如果您正在构建使用私有仓库的Docker镜像,您可以使用Docker build来对私有仓库进行身份验证。以下是一个示例 -
docker build --build-arg REGISTRY_USERNAME=username --build-arg REGISTRY_PASSWORD=password -t myprivaterepo/myapp .
在这个示例中,我们正在构建一个名为"myprivaterepo/myapp"的镜像,该镜像使用了一个私有仓库。我们通过 --build-arg 参数将我们的身份验证凭据作为构建参数传递。
一旦镜像构建完成,我们可以在Docker Compose文件中使用它−
version: '3.8' services: app: image: myprivaterepo/myapp
在这个例子中,我们定义了一个名为"app"的服务,它使用来自我们私有仓库的镜像"myprivaterepo/myapp"。
要运行此Docker Compose文件,我们可以使用以下命令−
docker-compose up
这将启动“app”服务,并使用来自我们私有仓库的镜像。
使用Docker Compose与私有仓库可能会有一些挑战,但是有几种可用的身份验证方法可以使访问您的镜像变得更容易。在本文中,我们探讨了如何使用Docker Compose与私有仓库,涵盖了不同的身份验证方法及其示例。通过按照这些示例,您可以轻松地对私有仓库进行身份验证,并在Docker Compose中使用您的镜像。
以上がプライベート リポジトリでの docker-compose の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。