Rumah >pangkalan data >tutorial mysql >Menggunakan docker-compose dengan repositori peribadi
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.
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.
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.
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.
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=passwordDalam 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
version: '3.8' services: app: image: myprivaterepo/myapp env_file: - .envDalam 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=passwordKaedah ini serupa dengan menggunakan pembolehubah persekitaran secara langsung dalam fail YAML, tetapi ia membolehkan anda menyimpan bukti kelayakan dalam fail berasingan.
Contoh
{ "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.jsonDalam 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 upIni akan memulakan perkhidmatan "apl" dan menarik imej daripada repositori peribadi kami.
Repositori peribadi dan pembolehubah persekitaran
export REGISTRY_USERNAME=username export REGISTRY_PASSWORD=passwordSekarang, 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_PASSWORDDalam 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 upIni akan memulakan perkhidmatan "apl" dan menarik imej daripada repositori peribadi kami.
REGISTRY_USERNAME=username REGISTRY_PASSWORD=passwordSekarang, mari buat fail Docker Compose menggunakan repositori peribadi kami −
version: '3.8' services: app: image: myprivaterepo/myapp env_file: - .envDalam 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" 服务并从我们的私有仓库拉取镜像。
如果您在一个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中使用您的镜像。
Atas ialah kandungan terperinci Menggunakan docker-compose dengan repositori peribadi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!