در این مقاله به بررسی ساختن سرور docker registry می پردازیم.
docker registry چیست؟
زمانی که ما میخواهیم یک image برای داکر بگیریم , داکر بصورت پیش فرض آن را از اینترنت میگیرد. گاهی اوقات مانند آموزش های پیشین ما خودمان یک image را می سازیم و گاهی اوقات هم پهنای باند اینترنت ما جواب گوی دانلود کردن آن ها را ندارد از این رو نیازمندیم تا یک مخزن داخلی داشته باشیم تا imageهای docker در آن قرار داشته باشند. این مهم توسط docker registry انجام میشود.
برای اینکه ما یک docker registry داشته باشیم ابتدا باید آن را بر روی سیستمی که میخواهیم این کار را انجام دهد نصب کنیم. برای امنظور دستور زیر را اجرا میکنیم .
yum -y install docker-registry
و سپس فایل تنظیمات آن را با ویرایشگر محبوب خودمان باز میکنیم و تغییرات زیر را در آن اعمال میکنیم
در خط ۱۹ عبارت زیر را اضافه میکنیم
search_backend: _env:SEARCH_BACKEND:sqlalchemy
خط ۲۱ را مانند زیر تغییر میدهیم
sqlalchemy_index_database: _env:SQLALCHEMY_INDEX_DATABASE:sqlite:////tmp/docker-registry.db
در خط ۷۴ محل دخیره image Iا را مشخص میکنیم
storage_path: _env:STORAGE_PATH:/var/lib/docker-registry
نکنه: اگر مسیر بالا وجود نداشت با دستور زیر آن را ایجاد کنید
mkdir /var/lib/docker-registry
و سپس با دستورات زیر docker registry را start و enable کنید
systemctl start docker-registry
systemctl enable docker-registry
ار آنجایی که docker registry بر روی پورت ۵۰۰۰ بالا می آید با دستور زیر از صحت عملکرد آن اطمینان حاصل میکنیم
curl localhost:5000
output:
“\”docker-registry server\””
نکته: زمانی که می خواهیم از docker registry استفاده کنیم داکرها بصورت پیش فرض به صورت https به این سرور وصل میشوند ولی زمانی که شما گواهی SSL ندارید میتوانید این فابلیت را غیرفعال کنید. برای این منظور لاین ۲۳ فایل /etc/sysconfig/docker را از حالت comment خارج کرده و سرویس docker را ریستارت میکنیم .
vi /etc/sysconfig/docker
INSECURE_REGISTRY=’–insecure-registry image.nowlearn.ir:5000′
systemctl restart docker
اگر بخواهیم imageی که خودمان ساخته ایم را بر روی docker registry لود کنید ابتدا باید آن را tag کنیم و سپس روی سرور قرار دهیم. برای این منظور بترتیب زیر عمل میکنیم .
docker tag web_server image.nowlearn.ir:5000/httpd
docker push image.nowlearn.ir:5000/httpd
برای جستجوی image در docker registry بصورت زیر عمل میکنیم
docker search image.nowlearn.ir:5000/httpd
و برای گرفتن آن image از docker registry بصورت زیر عمل میکنیم
docker pull image.nowlearn.ir:5000/httpd
در ضمن شما میتوانید برای خواندن مقالات مربوط به داکر یه اینجا و برای خواندن مقالات مربوط مجازی سازی به اینجا بروید.