hossein
4 ماه پیش توسط hossein مطرح شد
2 پاسخ

اتستفاده داکر به صورت آفلاین

سلام. یه سرور ubuntu آفلاین داریم برای شرکت. امکان اتصال به اینترنت نیست. یه vm بالا اوردیم روش docker , docker compose نصب کردیم
الان لازمه تغییراتی روی پروژه هامون بدیم images ها رو اپدیت کنیم یا build بگیریم. خب این دستورات چطور بدون اینترنت انجام بشه؟

ریجستری خصوصی میخواستم بسازم که اونم هر آموزشی میبینم انگار دامنه میخواد. خوب ما تمام سرور ها با ip بالا میاریم
راهنمایی کنید ممنون میشم


ثبت پرسش جدید
آرتین کریمی
تخصص : طراح وب و برنامه نویس
@error.404 4 ماه پیش مطرح شد
0

فکر نکنم بدون اینترنت بشه


سید آرین سید مومن
تخصص : junior security researcher
@arianseyed 4 ماه پیش مطرح شد
0

@emperatur133 درود ،
اگر اشتباه نکنم میشه ولی یکم دردسر داره میتونید از chat gpt هم برای راهنمایی بپرسید :
من ازش پرسیدم و اینو بهم گفت :
استفاده از ریجستری Docker خصوصی (بدون دامنه)
شما می‌توانید ریجستری خصوصی Docker را روی سرور خود راه‌اندازی کنید و از آدرس IP به جای دامنه استفاده کنید. این روش به شما امکان می‌دهد تصاویر Docker را در شبکه محلی خود مدیریت و استفاده کنید.

راه‌اندازی ریجستری خصوصی با استفاده از IP:
راه‌اندازی ریجستری خصوصی Docker:

یک کانتینر جدید از ریجستری Docker راه‌اندازی کنید

docker run -d -p 5000:5000 --name registry --restart=always -v /path/to/your/registry:/var/lib/registry registry:2

در اینجا، /path/to/your/registry مسیر محلی برای ذخیره تصاویر Docker شماست.
اضافه کردن گواهی‌نامه‌های HTTPS (اختیاری):

اگر نیاز به استفاده از HTTPS دارید (که توصیه می‌شود برای امنیت بیشتر)، باید گواهی‌های SSL خود را تنظیم کنید. این کار با استفاده از فایل‌های گواهی .crt و کلید .key انجام می‌شود.
سپس کانتینر ریجستری را با استفاده از این گواهی‌ها راه‌اندازی کنید

docker run -d -p 5000:5000 --name registry --restart=always \
  -v /path/to/your/registry:/var/lib/registry \
  -v /path/to/your/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/your-cert.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/your-key.key \
  registry:2

تنظیم Docker daemon برای پذیرش ریجستری بدون امن (HTTP):

در صورت استفاده از HTTP بدون گواهی‌نامه، باید Docker daemon را تنظیم کنید که به ریجستری خصوصی شما بدون HTTPS دسترسی داشته باشد.
فایل تنظیمات Docker daemon (/etc/docker/daemon.json) را ویرایش کنید و آی‌پی و پورت ریجستری خود را به لیست insecure-registries اضافه کنید:

{
  "insecure-registries" : ["your-private-registry-ip:5000"]
}

سپس Docker daemon را ری‌استارت کنید:

sudo systemctl restart docker

استفاده از تصاویر Docker به صورت آفلاین
برای انتقال تصاویر Docker بین سیستم‌ها بدون اتصال به اینترنت، می‌توانید از ابزارهای docker save و docker load استفاده کنید.

مراحل استفاده از docker save و docker load:
ذخیره تصویر به یک فایل:
روی سیستمی که تصاویر را دارد، از دستور docker save برای ذخیره تصویر به یک فایل استفاده کنید:

docker save -o /path/to/your-image.tar your-image:tag

انتقال فایل تصویر:
فایل تصویر ذخیره شده را با استفاده از روش‌های مختلف (مثل استفاده از USB، شبکه محلی، یا SSH) به سیستم آفلاین منتقل کنید.
لود کردن تصویر در سیستم آفلاین:
روی سیستم آفلاین، از دستور docker load برای لود کردن تصویر استفاده کنید:

docker load -i /path/to/your-image.tar

بیلد کردن تصاویر Docker در محیط آفلاین
اگر می‌خواهید پروژه‌هایتان را بیلد کنید و به Docker تصاویر جدید بدهید، باید تمام منابع مورد نیاز را به سیستم آفلاین منتقل کنید.

انتقال منابع لازم برای بیلد:
دریافت وابستگی‌ها و کد منبع:
قبل از رفتن به حالت آفلاین، اطمینان حاصل کنید که تمامی وابستگی‌های پروژه شما به صورت لوکال ذخیره شده‌اند.
بیلد کردن تصویر Docker:
روی سیستم آفلاین، در دایرکتوری که Dockerfile شما قرار دارد، دستور docker build را اجرا کنید:

docker build -t your-image:tag .

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام