آموزش گام به گام راه اندازی رجیستری خصوصی داکر در اوبونتو
در این مقاله میخوانید
- استفاده از رجیستری خصوصی داکر چه مزایایی دارد؟
- پیشنیازها
- گام اول: نصب و پیکربندی Docker Registry
- گام دوم: راهاندازی Port Forwarding وب سرور Nginx
- گام سوم: تنظیمات مربوط به احراز هویت
- گام چهارم: راهاندازی رجیستری داکر بهعنوان سرویس
- گام پنجم: افزایش اندازه فایل آپلودشده در Nginx
- گام ششم: انتشار در رجیستری خصوصی
- گام هفتم: Pull گرفتن از رجیستری خصوصی داکر
- جمعبندی
- سؤالات متداول
Docker Compose اپلیکیشنی است که ذخیره و تحویل ایمیجهای کانتینر داکر را مدیریت میکند. اگر توسعهدهندهای با تجربه قبلی کار با داکر باشید، حتماً میدانید که تولید ایمیجهای داکر یکی از فرایندهای زمانبر است؛ بههمیندلیل، استفاده از رجیستری داکر که درواقع ریپوزیتوری برای این ایمیجهاست، به شما کمک میکند تا در زمان خود صرفهجویی کنید. در این مقاله از آموزش اوبونتو و آموزش لینوکس بلاگ پارس پک، قصد داریم تا نحوه راهاندازی رجیستری خصوصی داکر را بهطورکامل به شما آموزش دهیم. باوجوداین، برای استفاده بهتر از این مطلب آموزشی، بهتر است که با اصول اولیه داکر آشنا باشید.
استفاده از رجیستری خصوصی داکر چه مزایایی دارد؟
Docker Hub رجیستری عمومی و رایگان برای داکر است که از آن برای میزبانی ایمیجهای سفارشی استفاده میشود؛ اما باتوجهبه اینکه ایمیجها معمولاً حاوی تمام کدهایی هستند که برای اجرای برنامه به آن نیاز دارید، گاهی اوقات ممکن است بهدلیل مسائل امنیتی، قصد نداشته باشید این ایمیجها دردسترس عموم قرار بگیرند. در این مواقع، استفاده از رجیستری خصوصی کاربردی است.
حالا که با اهمیت و کاربرد رجیستری خصوصی آشنا شدید، میتوانیم بهسراغ ادامه این مطلب آموزشی برویم.
خرید سرور لینوکس با قابلیت راهاندازی رجیستری خصوصی از پارس پک
شما میتوانید از این مقاله برای مدیریت سرویسهای لینوکسی خود استفاده کنید و اگر قصد خرید هر یک از سرورهای لینوکس پارس پک را دارید، میتوانید با کارشناسان فروش ما در ارتباط باشید. همچنین، شما میتوانید برای اطلاع از تعرفهها و هزینهها به لینکهای زیر مراجعه کنید.
پیشنیازها
برای استفاده از این مطلب آموزشی، به الزامات زیر نیاز خواهید داشت:
- دو سرور با سیستمعامل Ubuntu 22.04 با یک کاربر غیر ریشه با دسترسی Sudo و یک فایروال راهاندازی شده. یکی از این سرورها از رجیستری خصوصی داکر میزبانی خواهد کرد و سرور دوم بهعنوان سرور Client در نظر گرفته خواهد شد.
- لازم است روی هر دو سرور داکر را نصب کرده باشید.
- روی سرور میزبان Docker Compose نصب شده باشد.
- وب سرور Nginx روی سرور میزبان نصب شده باشد.
- وب سرور Nginx نصبشده روی سرور میزبان، با استفاده از Let’s Encrypt ایمن شده باشد. همچنین، باید مطمئن شوید که تمامی ترافیک HTTP روی HTTPS ریدایرکت شده باشند.
- دامنهای ثبتشده که مالکیت و مدیریت آن را در دست دارید.
گام اول: نصب و پیکربندی Docker Registry
اجرای داکر با استفاده از خط فرمان در مواقعی مفید است که میخواهید کانتینر را شروع و از آن استفاده کنید. بااینحال، درصورتیکه استقرارهای بزرگتری دارید که شامل کانتینرهای بیشتر و بهصورت موازی است، احتمالاً استفاده از این روش برایتان مشکلاتی در پی خواهد داشت.
با استفاده از Docker Compose، فایل .yml ایجاد خواهید کرد تا بتوانید پیکربندی و اطلاعاتی را تنظیم کنید که کانتینرها برای برقراری ارتباط با یکدیگر به آنها نیاز دارند. همچنین، از ابزار Docker Compose برای صدور تمامی دستورها به اجزای سازنده برنامه خود و کنترل گروهی آنها میتوانید استفاده کنید.
فراموش نکنید که Docker Registry خود اپلیکیشنی با چندین مؤلفه است؛ بههمیندلیل، برای مدیریت سادهتر آن از Docker Compose استفاده میکنیم. برای شروع کار، فایلی با نام docker-compose.yml ایجاد خواهیم کرد که از آن برای تعریف رجیستری و محلی که رجیستری در آن تعریف میشود، استفاده خواهیم کرد.
پیکربندی را در دایرکتوری به نام docker-registery و با استفاده از دستور زیر انجام خواهیم داد:
mkdir ~/docker-registry
حالا به این دایرکتوری وارد شوید:
cd ~/docker-registry
درادامه، دایرکتوری دیگری درون این پوشه ایجاد کنید و نام آن را data قرار دهید. این زیرپوشه همان محلی است که رجیستری شما ایمیجها را درون آن ذخیره خواهد کرد:
mkdir data
فایل docker-compose.yml را با استفاده از دستور زیر بسازید و سپس آن را باز کنید:
nano docker-compose.yml
خطوط زیر را به این فایل اضافه کنید. این کدها نمونهای اولیه از Docker Registry را ایجاد خواهند کرد:
version: '3' services: registry: image: registry:latest ports: - "5000:5000" environment: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data volumes: - ./data:/data
اگر کمی دقیقتر به این کدها نگاه کنید، درخواهید یافت که در ابتدا، سرویس را با نام Registry نامگذاری و بعد از آخرین نسخه، ایمیج آن را روی رجیستری تنظیم کردیم. سپس در قسمت پورتها، پورت 5000 روی هاست را به پورت 5000 کانتینر نگاشت (Map) کردیم. این موضوع به ما امکان میدهد تا Request بهسمت پورت 5000 روی سرور ارسال و آن را بهسمت رجیستری Forward کنیم.
سپس در قسمت Environment، متغیر REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY را روی /data قرار دادیم و مشخص کردیم که دادههای خود را باید در چه Volume ذخیره کنیم. بعدازآن نیز در قسمت volumes، دایرکتوری /data را در سیستم فایل Host، به /data در کانتینر نگاشت کردیم که بهعنوان مسیر عبور رفتار میکند. بهعبارتدیگر، dataها در سیستم فایل هاست ذخیره خواهند شد.
فایل را ذخیره کنید و ببندید. حالا با استفاده از دستور زیر، میتوانید پیکربندی را شروع کنید:
docker compose up
بدینترتیب، کانتینر رجیستری و Dependencyهای مربوط به آن دانلود و Start خواهد شد:
Output [+] Running 2/2 ⠿ Network docker-registry_default Created 0.1s ⠿ Container docker-registry-registry-1 Created 0.1s Attaching to docker-registry-registry-1 docker-registry-registry-1 | time="2022-11-19T14:31:20.40444638Z" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.16.15 instance.id=4fb8d420-eaf8-4a69-b740-bdc94fa52d91 service=registry version="v2.8.1+unknown" docker-registry-registry-1 | time="2022-11-19T14:31:20.404960549Z" level=info msg="redis not configured" go.version=go1.16.15 instance.id=4fb8d420-eaf8-4a69-b740-bdc94fa52d91 service=registry version="v2.8.1+unknown" docker-registry-registry-1 | time="2022-11-19T14:31:20.412312462Z" level=info msg="using inmemory blob descriptor cache" go.version=go1.16.15 instance.id=4fb8d420-eaf8-4a69-b740-bdc94fa52d91 service=registry version="v2.8.1+unknown" docker-registry-registry-1 | time="2022-11-19T14:31:20.412803878Z" level=info msg="Starting upload purge in 52m0s" go.version=go1.16.15 instance.id=4fb8d420-eaf8-4a69-b740-bdc94fa52d91 service=registry version="v2.8.1+unknown" docker-registry-registry-1 | time="2022-11-19T14:31:20.41296431Z" level=info msg="listening on [::]:5000" go.version=go1.16.15 instance.id=4fb8d420-eaf8-4a69-b740-bdc94fa52d91 service=registry version="v2.8.1+unknown" ...
آخرین خط خروجی نشان میدهد که فرایند با موفقیت آغاز شده و Listening روی پورت 5000 در حال انجام است. برای توقف اجرا میتوانید از کلیدهای ترکیبی Ctrl+C استفاده کنید.
در این مرحله، توانستیم پیکربندی Docker Compose ایجاد کنیم. در این پیکربندی، یک Docker Registry وجود دارد که به پورت 5000 گوش میدهد. در مراحل بعدی، نحوه نشاندادن آن در دامنه و احراز هویت آن را نیز خواهید آموخت.
برای آشنایی با آموزش گامبهگام نصب داکر روی اوبونتو مقاله زیر را بخوانید.
گام دوم: راهاندازی Port Forwarding وب سرور Nginx
در بخش ابتدایی این مطلب آموزشی و بهعنوان پیشنیاز، گفتیم که باید استفاده از پروتکل HTTPS روی دامنه فعال شده باشد. برای اینکه بتوانید ایمنسازی رجیستری داکر را نیز انجام دهید، باید وب سرور Nginx را بهگونهای پیکربندی کنید تا ترافیک از دامنه شما به کانتینر رجیستری ارسال شود.
شما قبلاً فایل /etc/nginx/sites-available/your_domain که حاوی پیکربندی سرور شماست، تنظیم کردهاید. با استفاده از دستور زیر، این فایل را باز کنید تا بتوانید آن را ویرایش کنید:
sudo nano /etc/nginx/sites-available/your_domain
بلوک location را در این فایل پیدا کنید:
... location / { ... } ...
باید بهگونهای ترافیک را به پورت 5000 ارسال کنید؛ یعنی همان جایی که رجیستری شما به ترافیک ارسالشده گوش میدهد. همچنین، باید Headerهایی را به Request ارسالشده به رجیستری اضافه کنید که با استفاده از آنها، اطلاعات اضافی را از سرور درباره خود Request ارائه میکند. برای این منظور، محتوای بلوک location را با استفاده از کدهای زیر جایگزین کنید:
... location / { # Do not allow connections from docker 1.5 and earlier # docker pre-1.6.0 did not properly set the user agent on ping, catch "Go *" user agents if ($http_user_agent ~ "^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*$" ) { return 404; } proxy_pass http://localhost:5000; proxy_set_header Host $http_host; # required for docker client's sake proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 900; } ...
شرط if در این قطعه کد، مسئولیت بررسی ورژن Docker را برعهده دارد. درصورتیکه ورژن داکر از 1.5 قدیمیتر باشد، خطای 404 بازگردانده میشود. بعد از اینکه ویرایش فایل با موفقیت بهاتمام رسید، تغییرات را ذخیره کنید و فایل را ببندید. برای اِعمال تغییرات، Nginx را با استفاده از دستور زیر مجدداً راهاندازی کنید:
sudo systemctl restart nginx
اگر با واردکردن این دستور پیغام خطایی دریافت کردید، تغییرات اضافهشده در فایل پیکربندی را مجدداً بررسی کنید. برای بررسی اینکه Nginx بهدرستی ترافیک را به کانتینر رجیستری شما در پورت 5000 ارسال میکند یا خیر، این دستور را اجرا کنید:
docker compose up
سپس، آدرس دامنه را در مرورگر وارد و مانند مثال زیر، در انتهای آن عبارت v2 را درج کنید:
https://your_domain/v2
مرورگر شما یک آبجکت JSON خالی را به شما نشان خواهد داد:
{}
در ترمینال خود نیز، باید با خروجیای مانند خروجی زیر روبهرو شوید:
utput docker-registry-registry-1 | time="2022-11-19T14:32:50.082396361Z" level=info msg="response completed" go.version=go1.16.15 http.request.host=your_domain http.request.id=779fe265-1a7c-4a15-8ae4-eeb5fc35de98 http.request.method=GET http.request.remoteaddr=87.116.166.89 http.request.uri="/v2" http.request.useragent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36" http.response.contenttype="text/html; charset=utf-8" http.response.duration="162.546µs" http.response.status=301 http.response.written=39 docker-registry-registry-1 | 172.19.0.1 - - [19/Nov/2022:14:32:50 +0000] "GET /v2 HTTP/1.0" 301 39 "" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36" docker-registry-registry-1 | 172.19.0.1 - - [19/Nov/2022:14:32:50 +0000] "GET /v2/ HTTP/1.0" 200 2 "" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36" docker-registry-registry-1 | time="2022-11-19T14:32:50.132472674Z" level=info msg="response completed" go.version=go1.16.15 http.request.host=your_domain http.request.id=0ffb17f0-c2a0-49d6-94f3-af046cfb96e5 http.request.method=GET http.request.remoteaddr=87.116.166.89 http.request.uri="/v2/" http.request.useragent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36" http.response.contenttype="application/json; charset=utf-8" http.response.duration=2.429608ms http.response.status=200 http.response.written=2 docker-registry-registry-1 | 172.19.0.1 - - [19/Nov/2022:14:32:50 +0000] "GET /favicon.ico HTTP/1.0" 404 19 "your_domain/v2/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
با استفاده از کلیدهای ترکیبی Ctrl+C، اجرای آن را متوقف کنید. حالا که Port Forwarding بهدرستی انجام شده است، امنیت رجیستری نیز افزایش خواهد یافت.
گام سوم: تنظیمات مربوط به احراز هویت
وب سرور Nginx به شما امکان میدهد تا احراز هویت HTTP را برای وبسایتهایی که مدیریت میکند، تنظیم کنید. استفاده از این روش برای محدودکردن دسترسی به رجیستری داکر کاربردی است. برای این منظور، باید فایل احراز هویتی با htpasswd ایجاد و سپس نام کاربری و رمزعبور را به آن اضافه کنید. این فایل فرایند احراز هویت را در رجیستری شما فعال خواهد کرد.
با نصب پکیج apache2-utils، میتوانید ابزار htpasswd را دریافت کنید. برای این منظور از دستور زیر استفاده کنید:
sudo apt install apache2-utils -y
فایل احراز هویت در مسیر ~/docker-registry/auth. ایجاد خواهد شد. با استفاده از دستور زیر، پوشه مدنظر را بسازید:
mkdir ~/docker-registry/auth
سپس وارد آن شوید:
cd ~/docker-registry/auth
اولین کاربر را با استفاده از کد زیر ایجاد کنید. توجه کنید که بهجای username باید نام کاربری دلخواه خود را قرار دهید. همچنین، فلگ -b موجب استفاده از الگوریتم bcrypt خواهد شد که داکر به آن نیاز دارد:
htpasswd -Bc registry.password username
پسازآن، از شما درخواست میشود تا رمزعبور خود را نیز وارد کنید. در این صورت، ترکیبی از اعتبارنامهها به registry.password. اضافه خواهد شد. بعد از اینکه فهرست اعتبارنامههای موردنیاز ساخته شد، باید فایل docker-compose.yml را ویرایش کنید تا به Docker دستور دهید از فایلی که ایجاد کردهاید، برای احراز هویت کاربران استفاده کند. این فایل را با استفاده از دستور زیر باز کنید:
nano ~/docker-registry/docker-compose.yml
خطهای هایلایتشده زیر را به این فایل اضافه کنید:
version: '3' services: registry: image: registry:latest ports: - "5000:5000" environment: REGISTRY_AUTH: htpasswd REGISTRY_AUTH_HTPASSWD_REALM: Registry REGISTRY_AUTH_HTPASSWD_PATH: /auth/registry.password REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data volumes: - ./auth:/auth - ./data:/data
حالا وقت آن است که ببینید آیا احراز هویت بهدرستی کار میکند یا خیر. برای این منظور به دایرکتوری اصلی بروید:
cd ~/docker-registry
درادامه با استفاده از دستور زیر، رجیستری را اجرا کنید:
docker compose up
دامنه خود را در صفحه مرورگر وارد کنید. اگر تمامی مراحل را بهدرستی انجام داده باشید، باید نام کاربری و رمزعبور از شما درخواست شود. بعد از واردکردن، شما با صفحه خالی JSON روبرو خواهید شد:
{}
اگر این صفحه در مرورگر به شما نشان داده شد، یعنی شما با موفقیت مراحل احراز هویت را گذراندهاید و حالا به رجیستری دسترسی دارید. با استفاده از کلیدهای ترکیبی Ctrl+C، از ترمینال خود خارج شوید.
رجیستری شما درحالحاضر ایمن است و فقط پس از احراز هویت دردسترس خواهد بود. در گامهای بعدی، خواهید آموخت که چطور رجیستری را پیکربندی کنید تا بهعنوان فرایند در Background اجرا شود؛ اما درعینحال درقبال شروع خودکار دربرابر راهاندازی مجدد نیز انعطاف داشته باشد.
گام چهارم: راهاندازی رجیستری داکر بهعنوان سرویس
با استفاده از دستور Docker Compose، کانتینر رجیستری با هربار بوتشدن سیستم یا بعد از اینکه سیستم به هر دلیل Crash کرد، مجدداً شروع به کار خواهد کرد. فایل docker-compose.yml را باز کنید تا بتوانید آن را ویرایش کنید:
nano docker-compose.yml
کدهای زیر را به بلوک registry اضافه کنید:
... registry: restart: always ...
حالا میتوانید رجیستری خود را بهعنوان فرایندی که در پسزمینه اجرا میشود، با استفاده از -d تنظیم کنید:
docker compose up -d
اجرای رجیستری در پسزمینه به شما امکان خواهد داد تا بتوانید جلسه (Session) SSH را ببندید و این اطمینان را داشته باشید که ترمینال و رجیستری همچنان به فعالیت خود ادامه میدهند. باتوجهبه اینکه ایمیجهای Docker ممکن است حجم زیادی داشته باشند، در مرحله بعد باید محدودیت اندازه فایلی که Nginx برای آپلود میپذیرد، افزایش دهید.
گام پنجم: افزایش اندازه فایل آپلودشده در Nginx
قبل از اینکه بتوانید ایمیجی را در رجیستری Push کنید، باید مطمئن شوید که رجیستری شما میتواند از فایلهایی با حجم زیاد میزبانی کند یا خیر. نباید فراموش کنید محدودیت اندازه فایلهایی که Nginx مجوز آپلود آنها را صادر میکند، بهطورپیشفرض برابر با ۱ مگابایت است که برای ایمیجهای داکر کافی نیست. برای افزایش سقف این محدودیت، باید فایل پیکربندی اصلی Nginx را که در مسیر /etc/nginx/nginx.conf قرار دارد، ویرایش کنید.
برای این منظور، این فایل را با استفاده از دستور زیر باز کنید:
sudo nano /etc/nginx/nginx.conf
در قسمت http، خط هایلایتشده را اضافه کنید:
... http { client_max_body_size 16384m; ... } ...
همانطورکه مشخص است، پارامتر client_max_body_size حالا روی ۱۶,۳۸۴ مگابایت (برابر با ۱۶ گیگابایت) تنظیم شده است. بعد از اِعمال تغییرات، فایل را ذخیره کنید و ببندید. سپس برای اِعمال تغییرات پیکربندی، Nginx را مجدداً راهاندازی کنید:
sudo systemctl restart nginx
حالا میتوانید با خیال راحت و بدون اینکه Nginx دچار خطا شود، ایمیجهای حجیم خود را در رجیستری داکر خود آپلود کنید.
برای آشنایی با ویژگیهای، مزیتها، معایب، عملکرد و اجزای داکر مقاله زیر را بخوانید.
گام ششم: انتشار در رجیستری خصوصی
تا این مرحله سرور Docker Registry شما در حال اجراست و فایلهای بزرگ را هم میپذیرد؛ بنابراین، میتوانید ایمیجهای خود را روی آن Push کنید. باتوجهبه اینکه احتمالاً ایمیجی برای بررسی صحت عملکرد سرور دردسترس شما نیست، از ایمیج اوبونتو در Docker Hub برای این منظور استفاده خواهیم کرد.
در Session جدید در ترمینال، برای کلاینت سرور خود از دستور زیر استفاده کنید. این دستور برای دانلود و اجرا و دسترسی به پوسته ایمیج اوبونتو کاربردی است:
docker run -t -i ubuntu /bin/bash
سپس با استفاده از دستور زیر، فایلی با نام SUCCESS ایجاد کنید:
touch /SUCCESS
با ایجاد این فایل، کانتینر خود را سفارشی کردهاید. با دستور زیر از پوسته کانتینر خود خارج شوید:
exit
حالا ایمیجی جدید از کانتینری که بهتازگی آن را سفارشی کردهاید، ایجاد کنید:
docker commit $(docker ps -lq) test-image
با این دستور، ایمیج جدید بهصورت Local دردسترس شما قرار خواهد گرفت. حالا باید آن را در رجیستری کانتینر خود Push کنید. برای این منظور، ابتدا لازم است تا Login کنید:
docker login https://your_domain
درادامه از شما خواسته میشود تا نام کاربری و رمزعبور خود را وارد کنید. بعد از انجام این کار، خروجی بهصورت زیر خواهد بود:
Output ... Login Succeeded
بعد از ورود، نام ایمیج ایجادشده را تغییر دهید:
docker tag test-image your_domain/test-image
درنهایت ایمیج جدید را در رجیستری خود Push کنید:
docker push your_domain/test-image
در این صورت، با خروجی زیر یا مشابه آن روبهرو خواهید شد:
Output Using default tag: latest The push refers to a repository [your_domain/test-image] 1cf9c9034825: Pushed f4a670ac65b6: Pushed latest: digest: sha256:95112d0af51e5470d74ead77932954baca3053e04d201ac4639bdf46d5cd515b size: 736
گام هفتم: Pull گرفتن از رجیستری خصوصی داکر
برای Pull گرفتن از رجیستری خصوصی، ابتدا با استفاده از نام کاربری و رمزعبور خود، در سرور اصلی Login کنید:
docker login https://your_domain
سپس، از دستور test-image بهصورت زیر استفاده کنید:
docker pull your_domain/test-image
بدینترتیب، داکر ایمیج را دانلود خواهد کرد. با استفاده از دستور زیر، کانتینر را اجرا کنید:
docker run -it your_domain/test-image /bin/bash
این دستور Shell کانتینر را اجرا خواهد کرد. حالا فهرستی از فایلها ایجاد کنید:
ls
این فهرست فایل SUCCESS را نیز شامل میشود که خودتان آن را ایجاد کردهاید؛ بنابراین، میتوان اطمینان پیدا کرد که این کانتینر از همان ایمیجی که ایجاد کردهاید، استفاده میکند:
SUCCESS bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
حالا با استفاده از دستور exit، از Shell کانتینر خارج شوید:
exit
جمعبندی
استفاده از رجیستری خصوصی داکر، از یک طرف به شما کمک میکند تا فرایند تولید ایمیجها را با سرعت بیشتری انجام دهید و در وقتتان صرفهجویی کنید و از طرف دیگر باعث امنیت ایمیجهای شما خواهد شد؛ زیرا برای دسترسی به آنها لزوماً باید به سرور Login کرد. در این مقاله از بلاگ پارس پک، نحوه راهاندازی رجیستری خصوصی داکر را در سیستمعامل اوبونتو 22.04 بهطورکامل به شما آموزش دادهایم.
سؤالات متداول
۱. استفاده از رجیستری خصوصی چه مزایایی دارد؟
در بسیاری از مواقع، نمیخواهید ایمیجهای خود را روی رجیستری عمومی مانند Docker Hub قرار دهید. در این صورت، استفاده از رجیستری خصوصی امنیت ایمیجهای شما را تضمین خواهد کرد.
۲. آیا اندازه ایمیجهای آپلودشده در Nginx محدودیت دارد؟
بله، اندازه پیشفرض آپلود در Nginx یک مگابایت است. بااینحال، این مقدار را با استفاده از client_max_body_size میتوان تغییر داد. در مقاله حاضر، نحوه انجام این کار را کاملاً توضیح دادهایم.
۳. TravisCI چیست؟
TravisCI یکی از ابزارهای قدرتمندی است که از آن برای خودکارسازی فرایند Push مستقیم به رجیستری خصوصی استفاده میشود.