خرید آنلاین و حضوری با اسنپ‌پی
در حال بارگذاری…
شبکه اطلاع رسانی طـــــــــــلا، ســکـــــــــــه و ارز
کیان
اولین گوشی برند استارلایت هواوی نمایشگر عریض خواهد داشت

اولین گوشی برند استارلایت هواوی نمایشگر عریض خواهد داشت

تحلیل ترون امروز ۸ آبان: نوسان در محدودهٔ ۰.۳۴ دلار و سناریوهای صعودی

تحلیل ترون امروز ۸ آبان: نوسان در محدودهٔ ۰.۳۴ دلار و سناریوهای صعودی

صرافی بایننس هک شد | مسدودشدن حدود ۲ میلیارد دلار دارایی (۸ آبان ۱۴۰۵)

صرافی بایننس هک شد | مسدودشدن حدود ۲ میلیارد دلار دارایی (۸ آبان ۱۴۰۵)

دوربین نظارتی جدید شیائومی با سیم‌کارت داخلی و اینترنت رایگان رونمایی شد

دوربین نظارتی جدید شیائومی با سیم‌کارت داخلی و اینترنت رایگان رونمایی شد

دوربین جدید شیائومی سیم‌کارت اختصاصی با اینترنت رایگان دارد

دوربین جدید شیائومی سیم‌کارت اختصاصی با اینترنت رایگان دارد

افت ۱۳ درصدی سهام آلفابت؛ بازار نگران هزینه‌های هوش مصنوعی گوگل است

افت ۱۳ درصدی سهام آلفابت؛ بازار نگران هزینه‌های هوش مصنوعی گوگل است

چرا سهام شرکت مادر گوگل سقوط کرد؟

چرا سهام شرکت مادر گوگل سقوط کرد؟

قابلیت‌های جدید Siri AI با پشتیبانی از زبان‌های تازه؛ درک صفحه و سقف استفاده ابری

قابلیت‌های جدید Siri AI با پشتیبانی از زبان‌های تازه؛ درک صفحه و سقف استفاده ابری

بازی Phantom Blade Zero به جی‌فورس ناو آمد؛ پشتیبانی از ماد در سایبرپانک و ویچر ۳

بازی Phantom Blade Zero به جی‌فورس ناو آمد؛ پشتیبانی از ماد در سایبرپانک و ویچر ۳

سود مایکروسافت ۳۲ درصد بالا رفت؛ Azure ۴۸ درصد رشد کرد، Xbox افت

سود مایکروسافت ۳۲ درصد بالا رفت؛ Azure ۴۸ درصد رشد کرد، Xbox افت

آموزش کپی کردن فایل بین کانتینر داکر و سیستم میزبان با دستور docker container cp

بازدید ۹منبع: فیسیت
آموزش کپی کردن فایل بین کانتینر داکر و سیستم میزبان با دستور docker container cp

آموزش کپی کردن فایل بین کانتینر داکر و سیستم میزبان با دستور docker container cp

ابزار داکر (Docker) به عنوان یکی از محبوب‌ترین پلتفرم‌های کانتینرسازی، امکانات متنوعی را برای مدیریت محیط‌های ایزوله فراهم می‌کند. یکی از نیازهای رایج توسعه‌دهندگان و کاربران، جابه‌جایی فایل‌ها و پوشه‌ها بین فایل‌سیستم کانتینر و سیستم میزبان (Host) است. فرمان docker container cp یا به اختصار docker cp دقیقاً برای همین هدف طراحی شده است و به شما اجازه می‌دهد بدون نیاز به راه‌اندازی سرویس‌های انتقال شبکه، فایل‌ها را میان این دو محیط کپی کنید.

این فرمان مشابه دستور سنتی cp -a در سیستم‌عامل‌های یونیکس عمل می‌کند و پوشه‌ها را به صورت بازگشتی همراه با حفظ دسترسی‌ها کپی می‌کند. در ادامهٔ این مقاله، نحوهٔ استفاده از این دستور، قوانین مسیردهی و نکات کلیدی آن را بر اساس مستندات رسمی بررسی می‌کنیم.

قوانین مسیردهی و ساختار دستوری

ساختار پایهٔ این دستور شامل مشخص کردن مبدأ (SRC_PATH) و مقصد (DEST_PATH) است. شما می‌توانید فایل‌ها را از کانتینر به ماشین میزبان یا برعکس انتقال دهید. همچنین امکان استفاده از علامت خط تیره ( - ) برای ارسال یا دریافت آرشیو tar از طریق جریان‌های استاندارد ورودی (STDIN) و خروجی (STDOUT) وجود دارد.

نکتهٔ مهم در مورد مسیرهای درون کانتینر این است که داکر فرض می‌کند مسیرهای کانتینر نسبت به دایرکتوری ریشه ( / ) سنجیده می‌شوند؛ بنابراین قرار دادن اسلش اولیه اختیاری است. مسیرهای سیستم میزبان نیز می‌توانند به صورت مطلق یا نسبی نسبت به دایرکتوری جاری اجرا شوند. همچنین برای جدا کردن نام کانتینر و مسیر آن، از نویسهٔ دو نقطه ( : ) استفاده می‌شود.

نحوهٔ کپی کردن فایل‌ها به درون و بیرون کانتینر

برای شروع انتقال، کانتینر می‌تواند در حالت در حال اجرا (Running) یا متوقف‌شده (Stopped) باشد. فرض کنید می‌خواهید یک فایل محلی را به داخل یک کانتینر منتقل کنید. دستور زیر این کار را با مشخص کردن مسیر مقصد در کانتینر انجام می‌دهد:

$ docker cp ./some_file CONTAINER:/work

در حالت عکس، اگر قصد داشته باشید پوشه‌ای از گزارش‌ها را از درون کانتینر به فضای ذخیره‌سازی محلی خود بیاورید، از الگوی زیر استفاده می‌شود:

$ docker cp CONTAINER:/var/logs/ /tmp/app_logs

اگر مسیر مقصد وجود نداشته باشد و با اسلش تمام نشود، داکر آن را به عنوان یک فایل جدید ذخیره می‌کند. در صورتی که مقصد یک دایرکتوری موجود باشد، فایل یا پوشهٔ منبع در داخل آن قرار می‌گیرد.

سوئیچ‌ها و حالت‌های پیشرفته

دستور docker cp دارای گزینه‌های کاربردی برای مدیریت دقیق‌تر فایل‌ها است. سوئیچ -a یا همان حالت آرشیو (Archive mode)، تمام اطلاعات مربوط به شناسه‌های UID و GID را حفظ می‌کند. به صورت پیش‌فرض، فایل‌های کپی‌شده به کانتینر با مالکیت کاربر ریشه ایجاد می‌شوند، اما با فعال کردن این سوئیچ مالکیت مبدأ حفظ می‌شود.

سوئیچ دیگری که در مستندات رسمی ذکر شده، -L است که باعث می‌شود دستور همیشه لینک‌های نمادین (Symlinks) موجود در مسیر مبدأ را دنبال کند و خود هدف را کپی نماید. همچنین سوئیچ -q برای متوقف کردن خروجی پیشرفت کار در ترمینال کاربرد دارد.

نکات ایمنی، محدودیت‌ها و عیب‌یابی

برخی پرونده‌های سیستمی خاص مانند فایل‌های موجود در پوشه‌های /proc ، /sys ، /dev ، tmpfs و مانت‌های ایجاد شده توسط کاربر در کانتینر قابل کپی کردن مستقیم با این دستور نیستند. با این حال، اگر نیاز به دسترسی به این موارد داشته باشید، می‌توانید با اجرای دستی ابزار tar به کمک docker exec این محدودیت را دور بزنید.

هنگام کار با این ابزار همواره مطمئن شوید که مسیرهای مبدأ و مقصد به درستی تعریف شده‌اند تا از خطاهای رایج مقصد دایرکتوری ناموجود جلوگیری شود. بررسی خروجی ترمینال و رعایت اصول دسترسی فایل‌ها به پایداری فرایند کمک می‌کند.

فیسیت مسئولیتی در قبال تصمیم به خرید و فروش در هیچ‌کدام از بسترهای اینترنتی ندارد.

هوش فیسیت · از این مطلب بپرس

بعد از خواندن مطلب بپرسید؛ پاسخ فقط از همین مقاله است.

این مطلب برایتان مفید بود؟

رایان جهانی خبرنگار موبایل، کامپیوتر و گجت فیسیت است. گوشی، لپ‌تاپ، قطعه و گجت را پوشش می‌دهد و مشخصات روی کاغذ را با واقعیت بازار ایران می‌سنجد؛ عدد بنچمارک را بدون قیمت، گارانتی و کاربرد روزمره رها نمی‌کند.

علاقه‌اش به این است که بفهمد یک دستگاه در دست کاربر چطور کار می‌کند، نه فقط روی اسلاید رونمایی. خبر معرفی و مقایسهٔ مدل‌های موبایل و سخت‌افزار را معمولاً او می‌نویسد.

آموزش اتصال به کانتینر در حال اجرا با docker attach؛ راهنمای گام‌به‌گام و کلید خروج امن

آموزش مشاهده لاگ در Docker Compose با گزینه‌های logs، tail و follow

آموزش دستور kill در لینوکس؛ بستن فرایندها با سیگنال‌های TERM و KILL

فایل compose.yaml را درست بنویسید؛ ساختار دو سرویس، پورت و متغیر محیطی با نمونهٔ رسمی

منبع: فیسیت
اشتراک‌گذاری:

نظرات کاربران

هنوز نظری برای این مطلب ثبت نشده — اولین نفر باشید.