امید آقاخانی
امید آقاخانی
خواندن ۲ دقیقه·۴ سال پیش

انتقال فایل ساخته شده در Docker Container به سرور

سلام دوستان داکری.

شما وقتی فایلی چیزی رو توی داکر میسازید،اونو توی روت سرور تون که نمیاره فداتون بشم.

توی همون Container ذخیره میکنه و مستقیم بهش دسترسی ندارید و خلاصه دنگ فنگ خودشو داره.

مثلا با mysqldump میخواید از دیتابیس بک اپ بگیرید،اونو رو داخل خود Container قرار میده ینی هر مسیری بدید،نسبت به روت Container خودش تصمیم میگیره و فایل رو ذخیره میکنه.

خوب فرض کنید یه فایلی ساختید و ذخیره شده توی Container،چطوری باید اونو بیاریم به شاخه اصلی سرور؟

خوب کافیه با دستور docker ps لیست container های خودتون رو بیارید که لیستی از اونا رو به شما به همراه،اسم و کد و ... رو میده.

اون ستون اول ینی CONTAINER ID مهم هست دوستان.

خلاصه آی دی رو که پیدا کردید،کافیه با دستور زیر

docker cp CONTAINER_ID:/FILENAME NEW_DIRECTORY

فایل رو به شاخه ای که میخواید کپی کنید اما دستور بالا چطوریه؟

توی دستور بالا اون cp به معنای کپی هستش،اون CONTAINER_ID کد کانیتنری هست که فایل داخل اونه و اون FILENAME اسم فایلی هست که میخواید کپی کنید (البته اگه توی پوشه ای چیزی هست باید دقیقا اون مسیر رو بدید) و اون NEW_DIRECTORY مسیری هست که قراره فایل کپی بشه مثلا /root بدید،میاد فایل رو داخل پوشه root در مسیر ~ لینوکستون قرار میده.

خوب شما اگه داخل کانتینر باشید میتونید با دستور ls خودمون لیست فایل ها رو ببینید.

منتهی باید داخل اون کانتینر باشید مثلا توی mysql باید داخل برید و اونجا مسیر رو میبینید.

مثلا من با دستور docker exec -it mysql bash -ls وارد کانتینر mysql عزیز شدم و اگه حالا دستور ls رو بزنم لیست فایل ها رو میبینم.

ینی شما هر دستوری بزنید نسبت به کانتینر فعلی که واردش شدید عمل میکنه.

خلاصه اینطوری فایل رو کپی میکنید خیلی راحتر.

البته احتمال قوی روش های راحتری هم باشه منتهی من با این روش کپی میکنم.

گون آیدین...

linuxdocker
دولوپر وب ، دسکتاپ و اپلیکیشن موبایل (اندروید و iOS)
شاید از این پست‌ها خوشتان بیاید