ホームページ  >  記事  >  データベース  >  プライベート リポジトリでの docker-compose の使用

プライベート リポジトリでの docker-compose の使用

WBOY
WBOY転載
2023-08-29 23:13:02638ブラウズ

###############導入###

Docker Compose は、複数コンテナーの Docker アプリケーションを定義および実行するためのツールです。これにより、開発者はアプリケーション スタックを YAML ファイルとして定義できるため、いくつかのコマンドを使用するだけで複雑な環境を簡単に作成できます。ただし、プライベート リポジトリで Docker Compose を使用するのは少し難しい場合があります。この記事では、さまざまな認証方法とその例を含め、Docker Compose でプライベート リポジトリを使用する方法を説明します。 プライベート リポジトリでの docker-compose の使用

プライベート倉庫とは何ですか?

Docker イメージはプライベートまたはパブリックのリポジトリに保存できます。パブリック リポジトリは誰でも公開されていますが、プライベート リポジトリはアクセスするために認証が必要です。プライベート リポジトリは通常、公開すべきでない独自のコードやデータを含むイメージに使用されます。プライベート リポジトリにアクセスするには、認証資格情報を提供する必要があります。

Docker Compose とプライベート ウェアハウスの使用

プライベート リポジトリで Docker Compose を使用する場合は、ホスト マシン上で実行されている Docker デーモンがリポジトリにアクセスできることを確認する必要があります。これを実現するには、リポジトリで使用される認証方法に応じて、いくつかの方法があります。

###認証方法###

Docker Config.json ファイル

Docker デーモンは、config.json ファイルを使用して認証資格情報を保存できます。このファイルは手動で作成することも、docker login コマンドを使用して作成することもできます。 Docker Compose で config.json ファイルを使用するには、それをコンテナー内のボリュームとしてマウントする必要があります。以下に例を示します:

リーリー

この例では、ユーザーのホーム ディレクトリにある config.json ファイルをコンテナのルート ディレクトリにマウントします。これにより、コンテナ内で実行されている Docker デーモンが、ファイルに保存されている認証情報にアクセスできるようになります。

###環境変数###

一部のプライベート リポジトリは、環境変数による認証をサポートしています。この方法は、構成ファイルで資格情報を公開したくない場合に便利です。例を次に示します −

リーリー

この例では、REGISTRY_USERNAME および REGISTRY_PASSWORD 環境変数を認証資格情報として設定します。コンテナ内で実行されている Docker デーモンは、これらの変数を使用してリポジトリで認証できます。

Docker Compose .env ファイル

Docker Compose を使用すると、.env ファイルで環境変数を定義できます。このファイルは、docker-compose コマンドの実行時に自動的にロードされます。以下に例を示します −

リーリー

この例では、env_file ディレクティブを使用して、.env ファイルに定義された環境変数を読み込みます。以下は .env ファイルの内容の例です:

リーリー

このアプローチは、YAML ファイル内で環境変数を直接使用する方法に似ていますが、資格情報を別のファイルに保持できます。

###例###

プライベート ウェアハウスと Docker Config.json ファイル

Docker Hub にプライベート リポジトリがあり、それを Docker Compose ファイルで使用したいとします。まず、認証資格情報を含む config.json ファイルを作成します -

リーリー

この例では、base64 でエンコードされた文字列を認証資格情報として使用します。ユーザー名とパスワードをコロンで区切ってエンコードした文字列

さあ、プライベート リポジトリを使用する Docker Compose ファイルを作成しましょう −

リーリー

この例では、プライベート リポジトリのイメージ「myprivaterepo/myapp」を使用する「app」というサービスを定義します。また、コンテナ内で実行されている Docker デーモンが資格情報にアクセスできるように、config.json ファイルをボリュームとしてコンテナにマウントします。

この Docker Compose ファイルを実行するには、次のコマンドを使用できます -

リーリー

これにより、「アプリ」サービスが開始され、プライベート リポジトリからイメージがプルされます。

プライベート リポジトリと環境変数

セルフホスト型レジストリでホストされているプラ​​イベート リポジトリがあり、それを 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" 服务并从我们的私有仓库拉取镜像。

私有仓库与Docker配置

如果您在一个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镜像,您可以使用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 サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。