کلیدهای دسترسی رجیستری
برای ورود به رجیستری کانتینر دادههات از ابزارهایی مانند Docker، به یک کلید دسترسی نیاز دارید. هر کلید یک نام کاربری و یک سکرت دارد و میتواند فقط اجازهی pull یا اجازهی push و pull داشته باشد.
ساخت کلید دسترسی
برای ساخت کلید، پس از ورود به پنل کاربری دادههات، از منوی سمت راست گزینهی «رجیستری» را انتخاب کنید، رجیستری مورد نظر را برگزینید و به زبانهی «کلیدهای دسترسی» بروید. سپس روی دکمهی «کلید جدید» کلیک کنید و فیلدهای زیر را تکمیل کنید:
- نام: نامی بین ۱ تا ۶۴ کاراکتر، شامل حروف کوچک انگلیسی، رقم، نقطه، خط تیره و زیرخط، مانند ci-deploy.
- سطح دسترسی: یکی از دو گزینهی «فقط pull» یا «push و pull».
توجه داشته باشید که ساخت کلید با دسترسی push نیازمند حساب احراز هویتشده است.
پس از ساخت، پنجرهی «کلید ساخته شد» نام کاربری، سکرت و یک «دستور docker login» آماده را نمایش میدهد.
سکرت را همان لحظه کپی کنید و در جای امنی نگه دارید. سکرت فقط یک بار نمایش داده میشود و بعداً قابل بازیابی نیست. اگر سکرت را گم کردید، یک کلید جدید بسازید و کلید قبلی را باطل کنید.
ورود به رجیستری
برای ورود به رجیستری از دستور زیر استفاده کنید و در پاسخ به درخواست رمز عبور، سکرت کلید را وارد کنید:
docker login registry.ir-central-1.dadehat.com -u <USERNAME>
ارسال ایمیج به رجیستری
برای ارسال یک ایمیج محلی، ابتدا آن را با نشانی رجیستری تگ کنید و سپس push کنید:
docker tag my-app:1.0 registry.ir-central-1.dadehat.com/<REGISTRY_NAME>/my-app:1.0
docker push registry.ir-central-1.dadehat.com/<REGISTRY_NAME>/my-app:1.0
پس از push، ایمیج در زبانهی «ایمیجها» قابل مشاهده است.
دریافت ایمیج از رجیستری
برای دریافت ایمیج از دستور زیر استفاده کنید:
docker pull registry.ir-central-1.dadehat.com/<REGISTRY_NAME>/my-app:1.0
برای سرورها یا محیطهایی که فقط اجرای ایمیج را بر عهده دارند، پیشنهاد میشود کلیدی با سطح دسترسی «فقط pull» بسازید.
استفاده در CI/CD
در سامانههای CI، سکرت را بهعنوان یک متغیر محرمانه تعریف کنید و بهجای وارد کردن دستی، آن را از ورودی استاندارد به Docker بدهید تا در تاریخچهی دستورات و لاگها ثبت نشود:
echo "$REGISTRY_SECRET" | docker login registry.ir-central-1.dadehat.com -u "$REGISTRY_USERNAME" --password-stdin
docker build -t registry.ir-central-1.dadehat.com/<REGISTRY_NAME>/my-app:$CI_COMMIT_SHORT_SHA .
docker push registry.ir-central-1.dadehat.com/<REGISTRY_NAME>/my-app:$CI_COMMIT_SHORT_SHA
اگر کد شما در GitHub یا GitLab است، میتوانید بهجای راهاندازی CI اختصاصی از بیلد و دپلوی دادههات استفاده کنید.
استفاده از ایمیج در کانتینر ابری
برای اجرای ایمیجهای رجیستریهای همان پروژه در کانتینر ابری به کلید دسترسی نیازی ندارید. کافی است در فیلد «ایمیج کانتینر» نشانی کامل ایمیج را وارد کنید؛ دادههات دسترسی pull را بهشکل خودکار فراهم میکند.
ابطال کلید
برای ابطال یک کلید، در زبانهی «کلیدهای دسترسی» روی گزینهی «ابطال کلید» کنار کلید مورد نظر کلیک کنید و درخواست را تایید کنید. وضعیت کلید به «باطلشده» تغییر میکند.
توجه داشته باشید که پس از ابطال کلید، دسترسی همهی کلاینتهایی که از آن استفاده میکنند بلافاصله قطع میشود.