یک رجیستری خصوصی یا به عبارت ساده تر ، رجیستری برای تصاویر کانتینر به شما امکان می دهد تا در حالت محافظت شده محلی کار کنید ، زیرا شما همه چیز را مدیریت می کنید.
با استفاده از رجیستری کانتینر ، تصاویر کانتینر را بر روی هر رایانه ایجاد می کنید و آنها را با استفاده از Docker یا در رجیستری کانتینرهای محلی قرار می دهید. Podman CLI.
این راهنما به شما نشان می دهد که چگونه می توانید با استفاده از Podman ، یک رجیستری محلی از تصاویر کانتینر Docker ایجاد کنید.
Podman یک موتور مبدل کانتینر برای توسعه ، مدیریت و اجرای ظروف OCI در سیستم لینوکس شما است.
ما تعداد زیادی داریم راهنماهای نصب Podman:
پس از نصب Podman ، می توانید شروع به ایجاد رجیستری محلی Docker کنید.
مرحله 1: ایجاد یک دامنه برای رجیستری Docker
من یک زیر دامنه برای رجیستری کانتینر ایجاد می کنم – Register.itsecforu.ru و به روز رسانی این یک رکورد DNS است.
تأیید کنید که رکورد بعد از روشن شدن کامل است:
$ dig A records.itsecforu.ru
؛ << >> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 << >> یک رجیستری.itsecforu.ru
؛؛ گزینه های جهانی: + cmd
؛؛ جواب دادم:
؛؛ - >> HEADER << - کد پستی: QUERY ، وضعیت: NOERROR ، شناسه: 23567
؛؛ پرچم ها: qr rd ra ad؛ QUERY: 1 ، پاسخ: 1 ، قدرت: 0 ، اضافی: 1
؛؛ PSEUDOSECTION OPT:
؛ EDNS: نسخه: 0 ، پرچم ها:؛ udp: 4096
؛؛ بخش سؤال:
؛ Register.itsecforu.ru. در یک
؛؛ بخش پاسخ:
Register.itsecforu.ru. 300 در A 159.69.179.51
؛؛ زمان پرس و جو: 14 msec
؛؛ سرور: 213.133.98.98 # 53 (213.133.98.98)
؛؛ WHEN: پنجشنبه 16 ژانویه 11:25:14 CET 2020
؛؛ MSG SIZE rcvd: 75
مرحله 2. ایجاد رجیستری ناایمن
اگر میزبان دامنه خود به صورت محلی هستید و یا می خواهید از گواهینامه ها بدون گواهی SSL استفاده کنید ، می توانید این کار را انجام دهید ، گرچه این کار برای استفاده توصیه نمی شود.
که podman نصب شده است:
نسخه podman
نسخه: 1.4.2-stabil2
نسخه RemoteAPI: 1
نسخه بروید: go1.12.8
OS / Arch: linux / amd64
دایرکتوری داده ایجاد کنید:
sudo mkdir -p / var / lib / رجیستری
رجیستری خصوصی نا امن خود را بصورت زیر ایجاد کنید:
podman run - -فروش خصوصی -d
- رجیستری نام
-p 5000: 5000
-v / var / lib / رجیستری: / var / lib / رجیستری
- شروع = همیشه
رجیستری: 2
محتوای رجیستری در / var / lib / Containers / رجیستری در سیستم میزبان ذخیره می شود.
نتیجه من این است:
سعی در کشیدن docker.io/library/registry:2 ... گرفتن امضاهای منبع تصویر
کپی کردن blob c87736221ed0 انجام شد
کپی کردن blob e8afc091c171 انجام شد
کپی کردن حباب 54d33bcb37f5 انجام شد
کپی کردن حباب b4541f6d3db6 انجام شد
کپی کردن حباب 1cc8e0bb44df انجام شد
کپی پیکربندی f32a97de94 انجام شد
نوشتن متن به مقصد مقصد
ذخیره امضاها
c99542d2802a85825cf75ecfa9ee34b5d4184b70f36acf110f75beaa4120b2aa
بررسی کنید که آیا کانتینر کار می کند:
$ podman ps
CONTAINER ID IMAGE Command نامهای PATAT STATUS ایجاد شده است
c99542d2802a docker.io/library/registry:2 /entrypoint.sh / e ... 3 دقیقه قبل تا 3 دقیقه پیش 0.0.0.0►000-> 5000 / tcp رجیستری
مرحله 2: یک رجیستری ایمن با یک گواهی رمزگذاری کنید.
دایرکتوری ایجاد کنید:
sudo mkdir -p / var / lib / رجیستری
نصب certbot-auto ، که ما برای دریافت رمزهای SSL برای رمزگذاری خود استفاده خواهیم کرد.
wget https://dl.eff.org/certbot-auto
chmod a + x certbot-auto
sudo mv certbot-auto / usr / local / bin / certbot-auto
sudo firewall-cmd --add-service https - ماندگار
sudo firewall-cmd --reload
دریافت گواهینامه SSL:
Export DOMAIN = "Register.computingforgeeks.com"
صادرات EMAIL = "[email protected]"
sudo / usr / local / bin / certbot-auto --standalone به طور گواهی -d $ DOMAIN - تفسیر-چالش ها http --agree-tos -n -m $ EMAIL - پست-تا-منقضی
تنظیم آدرس ایمیل و نام دامنه رجیستری
مسیر ذخیره ی گواهینامه و کلیدهای خصوصی به شما نشان داده می شود.
ذخیره ورود به سیستم اشکال زدایی به /var/log/letsencrypt/letsencrypt.log افزونه های انتخاب شده: مستقل Authenticator ، Installer None اخذ گواهینامه جدید انجام چالش های زیر: چالش http-01 برای Register.itsecforu.ru/ در انتظار تأیید ... تمیز کردن چالش ها نکات مهم: - تبریک می گویم! گواهینامه و زنجیره شما در موارد زیر ذخیره شده است: /etc/letsencrypt/live/registry.itsecforu.ru/fullchain.pem پرونده کلیدی شما در: /etc/letsencrypt/live/registry.itsecforu.ru//privkey.pem گواهینامه شما در تاریخ 2020-04-15 منقضی می شود. برای به دست آوردن یک جدید یا tweaked نسخه این گواهینامه در آینده ، به سادگی certbot-auto را اجرا کنید دوباره برای تجدید * همه * گواهینامه های خود را به صورت غیر تعاملی ، اجرا کنید "تمدید خودکار" - اعتبارنامه حساب شما در Certbot شما ذخیره شده است دایرکتوری پیکربندی در / etc / letsencrypt. شما باید یک اکنون نسخه پشتیبان تهیه کنید. این دایرکتوری پیکربندی خواهد شد همچنین دارای گواهینامه ها و کلیدهای خصوصی به دست آمده توسط Certbot است تهیه نسخه پشتیبان تهیه منظم از این پوشه ایده آل است. - اگر Certbot را دوست دارید ، لطفاً از کارهای ما حمایت کنید: کمک به ISRG / بیایید رمزگذاری کنیم: https://letsencrypt.org/donate اهداء به EFF: https://eff.org/donate-leociation19659035-03 قانون Cron را تنظیم کنید تا به طور خودکار تمدید شود:# crontab -e 00 3 * * * / usr / local / bin / certbot-auto تجدیدنظر --quietاکنون یک رجیستری کانتینر امن
صادر کنید REG_DOMAIN = "Register.itsecforu.ru" podman run - privileged -d - رجیستری نام -p 5000: 5000 -v / var / lib / رجیستری: / var / lib / رجیستری -v /etc/letsencrypt/live/${REG_DOMAIN►/fullchain.pem:/certs/fullchain.pem -v /etc/letsencrypt/live/${REG_DOMAIN►/privkey.pem:/certs/privkey.pem -E REGISTRY_HTTP_TLS_CERTIFICATE = / گواهینامه ها / fullchain.pem -E REGISTRY_HTTP_TLS_KEY = / گواهی نامه / privkey.pem رجیستری: 2بررسی کنید که آیا ظرف با موفقیت شروع شده است.
$ podman ps CONTAINER ID IMAGE Command نامهای PATAT STATUS ایجاد شده است d5ee3ead9d77 docker.io/library/registry:2 /entrypoint.sh / e ...تأیید کنید که همه چیز کار می کند: