docker-autocompose یک اسکریپت پایتون است که به شما امکان میدهد بدون زحمت فایلهای Docker Compose را از کانتینرهای در حال اجرا Docker ایجاد کنید.
Docker یک ابزار ضروری برای نصب آسان برنامههایی است که میتوانند سایتها و سرویسهای شما را اجرا کنند، و مدیریت آن با docker-compose حتی آسانتر است.
برخی از پروژهها با فایلهای docker-compose ارائه نمیشوند و ساختن خودتان زمانبر است. docker-autocompose می تواند یک فایل docker-compose فعال از هر کانتینر Docker در حال اجرا ایجاد کند.
برخی از برنامههای Docker فایلهای Compose ندارند
Docker یک پلت فرم منبع باز برای استقرار برنامه های کاربردی در اجزای همراه معروف به کانتینر است. با استفاده از Docker، لازم نیست نگران وابستگی ها یا تعاملات بین سرویس ها باشید، زیرا این سرویس ها معمولاً تا حدی از قبل پیکربندی شده اند.
میتوانید از Docker برای استقرار برنامههایی از جمله سرورهای تخصصی، توزیعهای لینوکس یا تصاویر سفارشی استفاده کنید. اجرای برنامه ها با Docker نسبتا آسان است و می تواند اطمینان حاصل کند که همیشه آخرین نسخه نرم افزار را دارید.
اگر با مفهوم برنامه های docker شده آشنا نیستید، باید راهنمای ضروری ما را در مورد اینکه چرا باید به جای ماشین مجازی از Docker استفاده کنید، بخوانید.
دستورات داکر طولانی هستند و معمولاً به صورت یک فرمان واحد اجرا می شوند که همه متغیرهای مربوطه را نشان می دهد. ورود آنها دشوار است، و اگرچه می توانید یک نام مستعار به فایل .bashrc خود اضافه کنید، اما اغلب به زدن مکرر Ctrl + R برای یافتن دستور Docker دقیق مورد نظرتان منجر می شود.
Docker Compose ابزاری است که به شما در تعامل بین کانتینری و ارکستراسیون کمک می کند. آنقدر در کمک به مدیریت کانتینرهای Docker موثر است، به طوری که بسیاری از کاربران اصلاً نحوه استفاده از Docker را یاد نمیگیرند. چرا در حالی که تنها کاری که باید انجام دهید این است که یک فایل YAML را دانلود کنید و آن را با یک دستور ساده دو کلمه ای بالا بیاورید؟
در حالی که بسیاری از برنامههایی که میتوانند توسط Docker مستقر شوند، دارای فایلهای Compose هستند، همه اینها را ندارند، و نصب و استقرار سریع و تمیز Docker را دشوار میکند. این امر بهویژه در مورد برنامههای سختافزاری کمتر رایج مانند ARM64 و ARMhf رایج است.
اگر ترجیح میدهید از Docker-compose به جای Docker خام استفاده کنید، اگر یک docker-compose.yml مفید در مخزن GitHub پروژه وجود ندارد، ممکن است از نرمافزار خاصی استفاده نکنید.
docker-autocompose تولید خودکار یک فایل Compose را آسان می کند
docker-autocompose یک برنامه پایتون است که می تواند یک فایل Compose کار از هر کانتینر داکر در حال اجرا ایجاد کند.
این بدان معنی است که شما فقط باید ابتدا دستور docker را اجرا کنید، سپس خروجی تولید شده را بگیرید و برنامه را با استفاده از docker-compose در آینده راه اندازی کنید، یا می توانید آن را به فایل Compose موجود اضافه کنید تا همه سرویس های خود را به طور همزمان مدیریت کنید.
نحوه نصب docker-autocompose در لینوکس
از آنجایی که docker-autocompose به عنوان یک برنامه پایتون ارائه می شود، باید Python PIP را روی سیستم لینوکس خود نصب کنید.
برای نصب Python PIP در دبیان یا اوبونتو:
sudo apt install python3-pip
PIP را روی Arch Linux و مشتقات آن با استفاده از:
sudo pacman -S python-pip
برای نصب PIP در CentOS و Red Hat Enterprise Linux، اجرا کنید:
sudo yum install python3 python3-wheel
ناگفته نماند که باید Docker و Docker Compose را نیز نصب کرده باشید.
مخزن GitHub را برای docker-autocompose کلون کنید و به دایرکتوری جدید بروید:
git clone https://github.com/Red5d/docker-autocompose.git
cd docker-autocompose
اکنون docker-autocompose را با اجرای زیر نصب کنید:
sudo python3 setup.py install
docker-autocompose اکنون نصب شده است.
از docker-autocompose برای ایجاد فایل های نوشتن استفاده کنید
اغلب، در حین جستجوی برنامههای ضروری لینوکس، با یک پروژه فوقالعاده مواجه میشوید که با تصاویر Docker اما بدون فایل Compose ارائه میشود. نمونه ای از این، سرویس گیرنده IRC عالی قابل دسترسی از طریق مرورگر، Dispatch است.
یک دایرکتوری برای Dispatch ایجاد کنید تا از آن استفاده کنید:
mkdir ~/dispatch
مشتری را در پورت 8080 دستگاه محلی خود بارگیری و راه اندازی کنید با:
docker run -p 8080:80 -v /home/david/dispatch:/data --restart no -d khlieng/dispatch
از localhost:8080 در مرورگر خود بازدید کنید تا بررسی کنید که Dispatch کار می کند یا خیر، سپس به docker-autocompose بگویید محتویات فایل Compose را از ظرف در حال اجرا با:
sudo autocompose.py <container-name-or-id>
در این حالت، نام کانتینر dispatch است و شناسه کانتینر بلافاصله پس از اجرای دستور docker به عنوان خروجی در ترمینال شما ظاهر می شود.
همچنین، میتوانید محتویات فایل Compose را ایجاد کنید که میتوانید از آن برای راهاندازی همه کانتینرهای Docker در حال اجرا خود استفاده کنید:
sudo autocompose.py $(docker ps -aq)
هیچ فایل Docker Compose ایجاد نخواهد شد، بنابراین شما باید stdout را در کلیپ بورد خود کپی کنید، سپس یک فایل جدید با استفاده از:
nano docker-compose.yml
محتویات کلیپ بورد خود را جایگذاری کنید، سپس با Ctrl + O و سپس Ctrl + X از nano خارج شده و ذخیره کنید.
اکنون می توانید همه کانتینرهای خود را به طور همزمان با موارد زیر شروع کنید:
docker-compose up -d
از طرف دیگر، میتوانید docker-autocompose را با استفاده از خود Docker با اجرای زیر اجرا کنید:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose <container-name-or-id> <additional-names-or-ids>
… که دستوری است که به شما یادآوری می کند که چرا برای شروع به docker-autocompose نیاز دارید.
فوراً فایلهای Compose Working را از Running Docker Containers ایجاد کنید
Docker و Docker Compose بخش مهمی از اکوسیستم برنامه لینوکس هستند و به ویژه برای سایتها و سرویسهای خود میزبانی در رایانه تکبردی Raspberry Pi بسیار ارزشمند هستند.
اگر قبلاً سفر خود را به سمت ایجاد اکوسیستم آنلاین خود شروع نکرده اید، باید به برخی از پروژه های وب عالی که می توانید روی Pi اجرا کنید نگاهی بیندازید.