Docker، به کاربران اجازه میدهد که بدون نیاز به داشتن سیستم عامل جداگانه برای اجرای برنامههای مختلفِ مستقل از کامپیوتر میزبان، آنها را اجرا کنند. به عبارت دیگر Docker نقش مشابهی به عنوان hypervisor برای ماشینهای مجازی دارد. بدین منظور، شما باید Docker container را با موتور مربوطه (Docker daemon) نصب و مدیریت نمایید.
با شروع استفاده از Docker، با شرایطی روبرو خواهید شد که در آن شرایط باید بدانید چگونه دادهها را بین containerها به اشتراک بگذارید.
در اینجا نحوه به اشتراک گذاری دادهها بین Docker Container شرح داده شده است. به منظور دنبال کردن آموزش به موارد زیر نیاز خواهید داشت:
یک کاربر با امتیاز sudo
دسترسی به ترمینال/خط فرمان
یک نسخه پایدار Docker
این مطلب نیز ممکن است برای شما مفید باشد: نحوه ایجاد و کار با Volume Docker
مرحله 1: ایجاد container با Data Volume
به منظور یادگیری نحوه اشتراک گذاری بین دو container باید یک container به نام Container1 با Data Volumeای به نام datavolume1 ایجاد کنید. مراحل به شرح زیر است:
1. ابتدا، یک volume مستقل برای به اشتراک گذاری بین دو Docker container ایجاد کنید.
docker volume create --name DataVolume1
2. سپس یک Docker container ایجاد نمایید. با اجرای دستور زیر آن را Container1 نام گذاری کرده و datavolume1 را به آن متصل کنید:
docker run -ti --name=Container1 -v DataVolume1:/datavolume1 ubuntu
3. پس از آن، یک فایل در datavolume1 ایجاد کرده و متنی را به آن اضافه نمایید:
echo "Share this file between containers" > /datavolume1/Example.txt
4. در آخر، با دستور exit از container خارج شوید:
مرحله 2: ایجاد container جدید و افزودن آن به data volume
در مرحله بعد، یک container جدید به نام Container2 ایجاد کنید تا فایلها را با Container1 به اشتراک بگذارد. مراحل انجام این کار به شرح زیر است:
1. کانتینر Container2 را ایجاد کرده و volumeها را از container1 به آن mount کنید:
docker run -ti --name=Container2 --volumes-from Container1 ubuntu
2. متنی به Container2 اضافه نمایید تا نشان داده شود که هر دو container میتوانند در DataVolume1 بنویسند:
echo "This will also appear in DataVolume1" >> /datavolume1/Example.txt
3. برای خروج از Container2 از دستور exit استفاده کنید.
مرحله 3: تأیید به اشتراک گذاری دادهها بین Docker Container
1. کانتینر Container1 را مجدداً راهاندازی کرده و تغییرات data volume را بررسی نمایید:
docker restart Container1
2. تأیید کنید که هر دو container میتوانند از یک data volume بخوانند و در آن بنویسند و متنی که در Container2 نوشتید در DataVolume1 نیز وجود دارد:
cat /datavolume1/Example.txt
اگر آن متن با موفقیت به data volume اضافه شده باشد، خروجی باید موارد زیر را نمایش دهد:
Share this file between containers
This will also appear in DataVolume1
3. برای خاتمه، با دستور exit از container خارج شوید.
این مطلب نیز ممکن است برای شما مفید باشد: نحوه نمایش containerها درDocker
اختیاری: ایجاد volumeهای فقط خواندنی (Read-Only)
ایجاد یک container "فقط خواندنی" از ایجاد هرگونه تغییر در دادهها توسط دیگران جلوگیری میکند و به آنها تنها امکان مشاهده فایلها را میدهد. این کار را میتوان با اضافه کردن :ro به نام container مورد نظر انجام داد.
در مثال زیر، Container2 مجاز به دیدن فایلهای Container1 خواهد بود؛ اما قادر به ویرایش آنها نخواهد بود.
docker run -ti --name=Container2 --volumes-from Container1:ro ubuntu
برای بررسی اینکه Container2 دارای امتیازات read-only است یا خیر، سعی کنید با اجرای دستور زیر، فایل example را از Container1 حذف نمایید:
rm /datavolume1/Example.txt
در خروجی به شما نشان داده میشود که این فایل read-only است. در نتیجه، containerهای دیگر میتوانند به دادهها دسترسی پیدا کرده و آنها را مشاهده نمایند؛ اما نمیتوانند تغییری در آنها ایجاد کنند.
منبع:
phoenixnap
0 دیدگاه
نوشتن دیدگاه