روز دیگر من کنجکاو بودم که چقدر سخت است که بلاگ خود را تنظیم کنم یا اینکه بیشتر علاقه مند بودم که انجام این کارها با ظروف چقدر آسان باشد. سیستم عامل های زیادی وجود دارد که وبلاگ شما را میزبانی می کنند ، اما آیا واقعاً اکنون به راحتی آسان خود را اجرا می کنید؟
برای شروع کار ، می توانید برای Docker ID ثبت نام کنید یا از Docker ID موجود خود برای بارگیری استفاده کنید. آخرین نسخه Docker Desktop Edge که شامل نوشتن نسخه جدید تجربه ECS است.
با تجربه محلی شروع کنید
برای شروع من یک نمونه وردپرس محلی را در دستگاه خود تنظیم کنید ، با گرفتن یک نمونه پرونده Compose از یک repo عالی آهنگسازی.
در ابتدا من با اجرای Docker Compos قصد داشتم این کار را بصورت محلی انجام دهم:
$ docker-compose up -d
سپس می توانم لیست ظروف در حال اجرا را بدست آورم:
$ docker-compose ps نام بنادر فرماندهی دولت -------------------------------------------------- ------------------------------------ deploywptocloud_db_1 docker-entrypoint.sh --def ... Up 3306 / Tcp، 33060 / tcp deploywptocloud_wordpress_1 docker-entrypoint.sh apach ... تا 0.0.0.0:80->80/tcp
و در آخر اینکه نگاهی به این مسئله انداختم که صحیح در حال اجرا است:
اعزام به ابر
عالی! حال باید به مطالب پرونده نوشتن نگاه کنم تا درک کنم که می خواهم هنگام حرکت به ابر تغییر کنم.
من قصد دارم این را در Elastic Container Service در AWS با استفاده از ادغام جدید Docker ECS اجرا کنم. Docker CLI. این بدان معنی است که من از بعضی از دستورات جدید docker برای تنظیم چیزها استفاده می کنم تا دستورات سنتی
docker-compose
. (در آینده ما فقط به docker می نویسیم
همه جا!)
نسخه: '3.7' خدمات: db: تصویر: mysql: 8.0.19 دستور: '--default-تأیید هویت-افزونه = mysql_native_password' شروع مجدد: همیشه جلد: - db_data: / var / lib / mysql محیط: - MYSQL_ROOT_PASSWORD = قدردانی - MYSQL_DATABASE = وردپرس - MYSQL_USER = وردپرس - MYSQL_PASSWORD = وردپرس وردپرس: تصویر: وردپرس: آخرین پورت ها: - 80:80 شروع مجدد: همیشه محیط: - WORDPRESS_DB_HOST = db - WORDPRESS_DB_USER = وردپرس - WORDPRESS_DB_PASSWORD = وردپرس - WORDPRESS_DB_NAME = وردپرس جلد: db_data:
به طور معمول در اینجا رمزهای عبور DB را به صورت مخفی منتقل می كنم ، اما هنوز هم پشتیبانی پنهانی در ادغام ECS وجود دارد ، بنابراین در حال حاضر ما راز خود را در پرونده نوشتن خود نگه خواهیم داشت.
ما قصد داریم این کار را در AWS اجرا کنیم ، برای ادامه باید یک تنظیم حساب AWS داشته باشید.
انتخاب سرویس بانک اطلاعاتی
در حال حاضر پشتیبانی نوشتن از ECS در داکر پشتیبانی نمی کند (لطفاً در اینجا به نقشه راه ما رأی دهید) ، بنابراین ما احتمالاً می خواهیم به جای آن یک سرویس بانک اطلاعاتی را انتخاب کنیم. در این مثال ، بگذارید RDS را انتخاب کنیم.
برای شروع بیایید کنسول AWS خود را باز کنیم و RDS نمونه آن را تهیه کنیم.
در اینجا من به بخش RDS رفته ام و نوع نمونه MySQL را انتخاب می کنم تا مطابق آنچه در محلی استفاده می کردم و همچنین پایین ترین سطح را انتخاب کنم. از DB همان چیزی است که من فکر می کنم به آن احتیاج دارم.
من اکنون جزئیات DB خود را وارد می کنم تا مطمئن شوم که رمز عبور را در پرونده نوشتن خود درج کنم:
عالی ، اکنون ما باید فایل خود را به روز کنیم تا دیگر از MYSQL محلی خود استفاده نکنیم. و در عوض از نمونه RDS استفاده کنید. برای این کار می خواهم از یک فایل کامپوزیت برای تولید استفاده کنم ، همچنین باید نام میزبان DB خود را از RDS بگیرم.
تطبیق پرونده نوشتن ما
اکنون می توانم با حذف DB که در یک ظرف قرار دارد و اطلاعات محیطی خود را اضافه کنم ، پرونده نوشتن خود را به روز کنم.
نسخه: '3.7' خدمات: وردپرس: تصویر: وردپرس: آخرین پورت ها: - 80:80 شروع مجدد: همیشه محیط: WORDPRESS_DB_HOST: wordpressdbecs.c1unvilqlnyq.eu-west-3.rds.amazonaws.com:3306 WORDPRESS_DB_USER: وردپرس WORDPRESS_DB_PASSWORD: wordpress123 WORDPRESS_DB_NAME: wordpressdbecs
آنچه می توانیم ببینیم این است که پرونده نوشتن در حال حاضر بسیار کوچکتر است زیرا من به نمونه RDS وابسته به کار وابسته هستم. ما فقط یک سرویس واحد ("وردپرس") داریم و سرویس "db" دیگری لازم نیست.
ایجاد زمینه ecs و استقرار
اکنون همه قسمت های آماده آماده سازی را در اختیار شما قرار می دهیم ، با راه اندازی زمینه ECS خود را با دنبال کردن این مراحل شروع می کنیم
- با اجرای این برنامه ، یک ECS جدید ایجاد کنید:
docker تنظیمات ecs
- از ما خواسته می شود تا زمینه خود را نامگذاری کنیم ، من فقط قصد دارم نام خود را وارد کنید تا متن خود را نامگذاری کنم
ecs
- از ما خواسته می شود نمایه AWS را انتخاب کنم ، من در حال حاضر ندارم. پسوند AWS نصب شده است بنابراین من نمایه جدیدی را انتخاب خواهم کرد و نام آن را "myecsprofile"
- خواهم داد منطقه ای را انتخاب کنم ، مستقر در اروپا هستم بنابراین
eu-west-3
را وارد کنید (حتماً این کار را در همان منطقه ای انجام دهید که قبلاً DB خود را مستقر کرده اید!) - اکنون یا باید یک کلید دسترسی AWS را در اینجا وارد کنید یا اگر قبلاً از چیزی مانند okta AWS یا AWS CLI استفاده می کنید ، می توانید N را در اینجا بگویید. برای استفاده از اعتبارنامه های موجود
- با همه این کارها ممکن است پیام خطایی را که باید برای مهاجرت به AR جدید بدست آورید دریافت کنید. قالب N "(نام منبع آمازون). می توانید اطلاعات بیشتر در مورد این مورد را در پست وبلاگ آمازون مطالعه کنید.
برای تکمیل تغییر باید به تنظیمات کنسول برای حساب AWS خود بروید و انتخاب خود را به حالت "فعال شده" منتقل کنید و سپس تنظیمات را ذخیره کنید:
- اکنون بیایید بررسی کنیم که زمینه ECS ما با موفقیت با لیست کردن زمینه های موجود با استفاده از
docker ls
- ایجاد شده است. با استفاده از این همه ، اکنون می توانیم از زمینه جدید ECS برای استقرار استفاده کنیم. ! ما باید زمینه ECS خود را به عنوان تمرکز فعلی خود تنظیم کنیم:
زمینه docker use ecs
- سپس ما می توانیم اولین استفاده خود را در اعزام برنامه نوشتن ما به ECS با استفاده از دستور compose up انجام دهیم:
docker ecs آهنگسازی up
- با این کار می توانیم گزارش ها را به وردپرس خود بررسی کنیم تا ببینیم که همه چیز به درستی کار می کند:
docker ecs comps logs
- وارد کنسول وب آمازون شده و با استفاده از دکمه "اصلاح" در صفحه نمای کلی ، به تنظیمات DB خود نگاهی بیندازید ، می توانیم در گروه های امنیتی خود مشاهده کنیم که استقرار وردپرس ما فقط به عنوان گروه پیش فرض گنجانده نشده است:
قادر به دیدن نام پروژه کانتینر خود هستید (من از آماده کردن این پست وبلاگ چند بار یک زن و شوهر دارم.). شما می خواهید این گروه را با همین نام پروژه اضافه کنید و سپس تغییرات خود را ذخیره کنید تا بلافاصله اعمال شود.
ایجاد زمینه ecs و استقرار
اکنون من اجرا می کنم: docker ecs compose ps
از خروجی فرمان می توانم URL کامل را از طریق پورت خود بگیرم و به سایت خود که اخیراً به Cloud اعزام شده است با استفاده از مرورگر وب خود هدایت کنم. :
عالی! اکنون ما 2 پرونده کامپوزیت داریم که یکی از آنها به ما امکان می دهد در این قسمت به صورت محلی کار کنیم و پرونده ای که به ما امکان می دهد با نمونه RDS خود این کار را در ابر اجرا کنیم.
منابع تمیز کردن
اگر نمی خواهید وب سایت خود را در حال اجرا نگه دارید (و همچنان هزینه پرداخت آن را انجام می دهید) به خاطر بیاورید تا از یک ترکیب docker استفاده کنید و ممکن است بخواهید نمونه RDS خود را نیز حذف کنید.
نتیجه گیری
در آنجا که شما آن را دارید ، اکنون یک نمونه وردپرس داریم که می توانیم بصورت محلی یا با حالت پایدار یا در ابر مستقر شویم!
برای شروع به یاد داشته باشید به جدیدترین نسخه Edge از Docker Desktop احتیاج دارید ، اگر می خواهید این کار را از ابتدا انجام دهید می توانید با تصویر رسمی وردپرس شروع به کار کنید یا می توانید این کار را با یکی دیگر از تصاویر رسمی در هاب امتحان کنید. و به یاد داشته باشید اگر می خواهید هر چیزی را که به صورت محلی ایجاد کرده اید در نمونه ECS خود اجرا کنید ، ابتدا باید آن را در داکر هاب ذخیره کنید. برای شروع به اشتراک گذاری مطالب خود در هاب ، راهنمای شروع ما را برای هاب بررسی کنید.