Warning: mkdir(): No space left on device in /var/www/tgoop/post.php on line 37

Warning: file_put_contents(aCache/aDaily/post/ninja_learn_ir/--): Failed to open stream: No such file or directory in /var/www/tgoop/post.php on line 50
Ninja Learn | نینجا لرن@ninja_learn_ir P.775
NINJA_LEARN_IR Telegram 775
خب خب خب، Volume توی داکر🐳
‏Volume ها توی داکر یه راه استاندارد برای ذخیره ی داده ها به شکل پایدار(persistent data) هستن. یعنی وقتی که یه کانتینر خاموش یا پاک میشه، داده هایی که داخل Volume ذخیره شده باشن از بین نمیرن و دوباره قابل استفاده هستن. که این یعنی Volume ها جدا از لایه ی فایل سیستم کانتینر عمل میکنن و توی /var/lib/docker/volumes/ نگهداری میشن. کاربردشون معمولا برای دیتابیس ها، فایل های کاربر، یا هر داده ای که نباید با حذف کانتینر از دست بره هست.

چطور ازشون استفاده کنیم؟🤔
میتونید با استفاده از دستور زیر Volumeها رو مدیریت کنید.
docker volume ls            
# List all existing volumes
docker volume create NAME
# Create a new volume
docker volume inspect NAME
# View detailed information about a volume
docker volume rm NAME
# Remove a specific volume
docker volume prune
# Remove all unused volumes

نکته⚠️: اگه یه Volume هنوز به یه کانتینر متصل باشه، نمیشه مستقیم با rm حذفش کرد.

بعد از ساختن Volume های مورد نظرتون میتونید به این شکل وصلشون کنید به کانتینر هاتون:
docker run -v my_volume:/app/data my_image

یا توی فایل compose:
services:
app:
image: my_image
container_name: my_container
volumes:
- my_volume:/app/data

volumes:
my_volume:

خب همونطور که دیدین، اسم Volume رو سمت چپ دو نقطه و مسیری که میخوایم توی کانتینر بهش وصل بشیم رو سمت راست میذاریم.
با اینکار هر تغییری که توی مسیر /app/data/ توی فایل سیستم کانتینر رخ بده توی Volume هم ذخیره میشه و حتی با خاموش شدن کانتینر هم در دسترس و قابل استفاده هست.

یه نکته ی مهم⚠️
احتمالا توی بعضی جاها دیده باشین که از سینتکس زیر استفاده میشه:
services:
app:
image: my_image
container_name: my_container
volumes:
- .:/app/data

توی این روش سمت راست دونقطه به جای اسم Volume، مسیر فعلی توی سیستم قرار داده شده. توی این روش اصلا از Volume استفاده نمیشه و اسمش Bind Mount هست. درواقع اگه سمت راست دو نقطه به جای اسم Volume یه مسیر توی فایل سیستمتون رو بنویسید، Bind Mount اتفاق میوفته.
اینجا به جای اینکه یه Volume رو به فایل سیستم کانتینر وصل کرده باشیم، پوشه فعلی از فایل سیستم اصلی خودمون رو به فایل سیستم کانتینر وصل کردیم. این کار باعث بروز یه سری مشکلات میشه:

1️⃣ اگه اطلاعات توی کانتینر از دست برن توی فایل سیستم اصلی هم از دست میرن
یعنی اگه شما پروژه رو توی کانتینر حذف کنید، از روی سیستم خودتون هم حذف میشه. درواقع هر تغییری که توی کانتینر ایجاد کنید توی فایل سیستم اصلیتون هم ایجاد میشه.
2️⃣ عدم تطابق نسخه ی فایل ها
وقتی چند تا کانتینر همزمان یه مسیر رو Bind کردن، ممکنه فایل ها تصادفی توسط یکی از کانتینر ها تغییر کنه و هماهنگی بین فایل های پروژه به هم بریزه و باعث خرابی بشه.
3️⃣ ریسک های امنیتی
اگه داخل کانتینر دسترسی root باشه و به پوشه های حساسی Bind Mount شده باشه، کانتینر میتونه مستقیما به فایل های سیستمی آسیب بزنه.
4️⃣ انتقال ناخواسته ی فایل های حساس
اگه اشتباهی کل home/ یا / رو mount کنید داخل کانتینر، ممکنه فایل های حساس(مثل SSH Keyها، توکن ها، رمزها و...) هم توی محیط کانتینر قابل دسترس باشه.

جمع بندی✍️
‏Volume ها بشدت کاربردی هستن و میتونن برنامه نویس و کد رو نجات بدن. فقط باید دقت کنید که مسیر درستی رو به Volume بدین.
همچنین Bind Mount هم میتونه توی فاز توسعه کاربردی باشه. چون خیلی راحت میشه تغییرات توی کد رو روی کانتینر مشاهده و بررسی کرد ولی برای محیط پروداکشن خیلی خطرناک هستن و میتونن کلا محصول شمارو خراب کنن.

#️⃣ #programming #devops


🥷🏻 CHANNEL | GROUP
👍13



tgoop.com/ninja_learn_ir/775
Create:
Last Update:

خب خب خب، Volume توی داکر🐳
‏Volume ها توی داکر یه راه استاندارد برای ذخیره ی داده ها به شکل پایدار(persistent data) هستن. یعنی وقتی که یه کانتینر خاموش یا پاک میشه، داده هایی که داخل Volume ذخیره شده باشن از بین نمیرن و دوباره قابل استفاده هستن. که این یعنی Volume ها جدا از لایه ی فایل سیستم کانتینر عمل میکنن و توی /var/lib/docker/volumes/ نگهداری میشن. کاربردشون معمولا برای دیتابیس ها، فایل های کاربر، یا هر داده ای که نباید با حذف کانتینر از دست بره هست.

چطور ازشون استفاده کنیم؟🤔
میتونید با استفاده از دستور زیر Volumeها رو مدیریت کنید.

docker volume ls            
# List all existing volumes
docker volume create NAME
# Create a new volume
docker volume inspect NAME
# View detailed information about a volume
docker volume rm NAME
# Remove a specific volume
docker volume prune
# Remove all unused volumes

نکته⚠️: اگه یه Volume هنوز به یه کانتینر متصل باشه، نمیشه مستقیم با rm حذفش کرد.

بعد از ساختن Volume های مورد نظرتون میتونید به این شکل وصلشون کنید به کانتینر هاتون:
docker run -v my_volume:/app/data my_image

یا توی فایل compose:
services:
app:
image: my_image
container_name: my_container
volumes:
- my_volume:/app/data

volumes:
my_volume:

خب همونطور که دیدین، اسم Volume رو سمت چپ دو نقطه و مسیری که میخوایم توی کانتینر بهش وصل بشیم رو سمت راست میذاریم.
با اینکار هر تغییری که توی مسیر /app/data/ توی فایل سیستم کانتینر رخ بده توی Volume هم ذخیره میشه و حتی با خاموش شدن کانتینر هم در دسترس و قابل استفاده هست.

یه نکته ی مهم⚠️
احتمالا توی بعضی جاها دیده باشین که از سینتکس زیر استفاده میشه:
services:
app:
image: my_image
container_name: my_container
volumes:
- .:/app/data

توی این روش سمت راست دونقطه به جای اسم Volume، مسیر فعلی توی سیستم قرار داده شده. توی این روش اصلا از Volume استفاده نمیشه و اسمش Bind Mount هست. درواقع اگه سمت راست دو نقطه به جای اسم Volume یه مسیر توی فایل سیستمتون رو بنویسید، Bind Mount اتفاق میوفته.
اینجا به جای اینکه یه Volume رو به فایل سیستم کانتینر وصل کرده باشیم، پوشه فعلی از فایل سیستم اصلی خودمون رو به فایل سیستم کانتینر وصل کردیم. این کار باعث بروز یه سری مشکلات میشه:

1️⃣ اگه اطلاعات توی کانتینر از دست برن توی فایل سیستم اصلی هم از دست میرن
یعنی اگه شما پروژه رو توی کانتینر حذف کنید، از روی سیستم خودتون هم حذف میشه. درواقع هر تغییری که توی کانتینر ایجاد کنید توی فایل سیستم اصلیتون هم ایجاد میشه.
2️⃣ عدم تطابق نسخه ی فایل ها
وقتی چند تا کانتینر همزمان یه مسیر رو Bind کردن، ممکنه فایل ها تصادفی توسط یکی از کانتینر ها تغییر کنه و هماهنگی بین فایل های پروژه به هم بریزه و باعث خرابی بشه.
3️⃣ ریسک های امنیتی
اگه داخل کانتینر دسترسی root باشه و به پوشه های حساسی Bind Mount شده باشه، کانتینر میتونه مستقیما به فایل های سیستمی آسیب بزنه.
4️⃣ انتقال ناخواسته ی فایل های حساس
اگه اشتباهی کل home/ یا / رو mount کنید داخل کانتینر، ممکنه فایل های حساس(مثل SSH Keyها، توکن ها، رمزها و...) هم توی محیط کانتینر قابل دسترس باشه.

جمع بندی✍️
‏Volume ها بشدت کاربردی هستن و میتونن برنامه نویس و کد رو نجات بدن. فقط باید دقت کنید که مسیر درستی رو به Volume بدین.
همچنین Bind Mount هم میتونه توی فاز توسعه کاربردی باشه. چون خیلی راحت میشه تغییرات توی کد رو روی کانتینر مشاهده و بررسی کرد ولی برای محیط پروداکشن خیلی خطرناک هستن و میتونن کلا محصول شمارو خراب کنن.

#️⃣ #programming #devops


🥷🏻 CHANNEL | GROUP

BY Ninja Learn | نینجا لرن


Share with your friend now:
tgoop.com/ninja_learn_ir/775

View MORE
Open in Telegram


Telegram News

Date: |

How to Create a Private or Public Channel on Telegram? With the sharp downturn in the crypto market, yelling has become a coping mechanism for many crypto traders. This screaming therapy became popular after the surge of Goblintown Ethereum NFTs at the end of May or early June. Here, holders made incoherent groaning sounds in late-night Twitter spaces. They also role-played as urine-loving Goblin creatures. A Telegram channel is used for various purposes, from sharing helpful content to implementing a business strategy. In addition, you can use your channel to build and improve your company image, boost your sales, make profits, enhance customer loyalty, and more. There have been several contributions to the group with members posting voice notes of screaming, yelling, groaning, and wailing in different rhythms and pitches. Calling out the “degenerate” community or the crypto obsessives that engage in high-risk trading, Co-founder of NFT renting protocol Rentable World emiliano.eth shared this group on his Twitter. He wrote: “hey degen, are you stressed? Just let it out all out. Voice only tg channel for screaming”. Some Telegram Channels content management tips
from us


Telegram Ninja Learn | نینجا لرن
FROM American