Rumah  >  Artikel  >  pangkalan data  >  Menggunakan docker-compose dengan repositori peribadi

Menggunakan docker-compose dengan repositori peribadi

WBOY
WBOYke hadapan
2023-08-29 23:13:02638semak imbas

Menggunakan docker-compose dengan repositori peribadi

Pengenalan

Docker Compose ialah alat untuk mentakrif dan menjalankan aplikasi Docker berbilang bekas. Ia membolehkan pembangun mentakrifkan timbunan aplikasi mereka sebagai fail YAML, menjadikannya mudah untuk mencipta persekitaran yang kompleks dengan hanya beberapa arahan. Walau bagaimanapun, menggunakan Docker Compose dengan repositori peribadi boleh menjadi agak rumit. Dalam artikel ini, kami akan meneroka cara menggunakan repositori peribadi dengan Docker Compose, termasuk kaedah pengesahan yang berbeza dan contohnya.

Apakah itu gudang persendirian?

Imej docker boleh disimpan dalam repositori peribadi atau awam. Repositori awam terbuka kepada semua orang, manakala repositori peribadi memerlukan pengesahan untuk mengakses. Repositori peribadi biasanya digunakan untuk imej yang mengandungi kod proprietari atau data yang tidak sepatutnya tersedia untuk umum. Untuk mengakses repositori peribadi, anda perlu menyediakan bukti kelayakan pengesahan.

Menggunakan Docker Compose dengan repositori peribadi

Apabila menggunakan Docker Compose dengan repositori peribadi, anda perlu memastikan bahawa daemon Docker yang berjalan pada mesin hos boleh mengakses repositori. Terdapat beberapa cara untuk mencapai ini bergantung pada kaedah pengesahan yang digunakan oleh repositori.

Kaedah pengesahan

Fail Docker Config.json

Daemon Docker boleh menggunakan fail config.json untuk menyimpan bukti kelayakan pengesahan. Fail ini boleh dibuat secara manual atau menggunakan arahan log masuk docker. Untuk menggunakan fail config.json dalam Docker Compose, anda perlu melekapkannya sebagai volum dalam bekas. Berikut adalah contoh:

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      volumes:
         - $HOME/.docker/config.json:/root/.docker/config.json

Dalam contoh ini, kami melekapkan fail config.json yang terletak dalam direktori rumah pengguna ke direktori akar bekas. Ini membolehkan daemon Docker berjalan di dalam bekas untuk mengakses bukti kelayakan yang disimpan dalam fail.

Pembolehubah persekitaran

Sesetengah repositori peribadi menyokong pengesahan melalui pembolehubah persekitaran Kaedah ini berguna apabila anda tidak mahu mendedahkan bukti kelayakan anda dalam fail konfigurasi

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      environment:
         - REGISTRY_USERNAME=username
         - REGISTRY_PASSWORD=password

Dalam contoh ini, kami menetapkan pembolehubah persekitaran REGISTRY_USERNAME dan REGISTRY_PASSWORD sebagai bukti kelayakan pengesahan. Daemon Docker yang berjalan di dalam bekas boleh menggunakan pembolehubah ini untuk mengesahkan dengan repositori.

Fail Karang Docker .env

Docker Compose membolehkan anda mentakrifkan pembolehubah persekitaran dalam fail .env, yang dimuatkan secara automatik apabila anda menjalankan arahan docker-compose. Berikut ialah contoh −

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      env_file:
         - .env

Dalam contoh ini, kami menggunakan arahan env_file untuk memuatkan pembolehubah persekitaran yang ditakrifkan dalam fail .env. Berikut ialah kandungan sampel fail .env:

REGISTRY_USERNAME=username
REGISTRY_PASSWORD=password

Kaedah ini serupa dengan menggunakan pembolehubah persekitaran secara langsung dalam fail YAML, tetapi ia membolehkan anda menyimpan bukti kelayakan dalam fail berasingan.

Contoh

Gudang peribadi dan fail Docker Config.json

Andaikan kami mempunyai repositori peribadi di Docker Hub dan kami mahu menggunakannya dalam fail Docker Compose. Kami akan membuat fail config.json terlebih dahulu yang mengandungi bukti kelayakan pengesahan −

{
   "auths": {
      "https://index.docker.io/v1/": {
         "auth": "dXNlcm5hbWU6cGFzc3dvcmQ="
		}
	}
}

Dalam contoh ini, kami menggunakan rentetan berkod base64 sebagai bukti kelayakan pengesahan kami. Rentetan terdiri daripada nama pengguna dan kata laluan yang dipisahkan oleh titik bertindih dan dikodkan

Sekarang, mari buat fail Docker Compose menggunakan repositori peribadi kami −

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      volumes:
         - $HOME/.docker/config.json:/root/.docker/config.json

Dalam contoh ini, kami mentakrifkan perkhidmatan yang dipanggil "aplikasi" yang menggunakan imej "myprivaterepo/myapp" daripada repositori peribadi kami. Kami juga melekapkan fail config.json sebagai volum ke dalam bekas supaya daemon Docker yang berjalan di dalam bekas boleh mengakses bukti kelayakan.

Untuk menjalankan fail Docker Compose ini kita boleh menggunakan arahan berikut −

docker-compose up

Ini akan memulakan perkhidmatan "apl" dan menarik imej daripada repositori peribadi kami.

Repositori peribadi dan pembolehubah persekitaran

Andaikan kami mempunyai repositori peribadi yang dihoskan pada pendaftaran yang dihoskan sendiri dan kami mahu menggunakannya dalam fail Karang Docker. Kami akan mulakan dengan menetapkan kelayakan pengesahan sebagai pembolehubah persekitaran -

export REGISTRY_USERNAME=username
export REGISTRY_PASSWORD=password

Sekarang, mari buat fail Docker Compose menggunakan repositori peribadi kami −

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      environment:
         - REGISTRY_USERNAME=$REGISTRY_USERNAME
         - REGISTRY_PASSWORD=$REGISTRY_PASSWORD

Dalam contoh ini, kami mentakrifkan perkhidmatan yang dipanggil "aplikasi" yang menggunakan imej "myprivaterepo/myapp" daripada repositori peribadi kami. Kami juga menetapkan pembolehubah persekitaran REGISTRY_USERNAME dan REGISTRY_PASSWORD untuk bukti kelayakan pengesahan.

Untuk menjalankan fail Docker Compose ini kita boleh menggunakan arahan berikut −

docker-compose up

Ini akan memulakan perkhidmatan "apl" dan menarik imej daripada repositori peribadi kami.

  • Repositori peribadi dengan fail Docker Compose .env

Andaikan kami mempunyai repositori peribadi yang dihoskan pada pendaftaran yang dihoskan sendiri dan kami mahu menggunakannya dalam fail Karang Docker. Kami akan membuat fail .env terlebih dahulu yang mengandungi kelayakan pengesahan kami −

REGISTRY_USERNAME=username
REGISTRY_PASSWORD=password

Sekarang, mari buat fail Docker Compose menggunakan repositori peribadi kami −

version: '3.8'

services:
   app:
      image: myprivaterepo/myapp
      env_file:
         - .env

Dalam contoh ini, kami mentakrifkan perkhidmatan yang dipanggil "aplikasi" yang menggunakan imej "myprivaterepo/myapp" daripada repositori peribadi kami. Kami juga menggunakan arahan env_file untuk memuatkan pembolehubah persekitaran yang ditakrifkan dalam fail .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中使用您的镜像。

Atas ialah kandungan terperinci Menggunakan docker-compose dengan repositori peribadi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam