Md Daily – Telegram
Md Daily
725 subscribers
239 photos
15 videos
21 files
283 links
راجب مقالات و مستندات فنی یا غیر فنی که میخونم و علایقم اینجا مینویسم :)


گروه کانال: https://news.1rj.ru/str/MdDailyGap

کورس ها: https://news.1rj.ru/str/MdDaily/395

وبلاگ: https://mddaily.ir
Download Telegram
#ام_دی_کورس

داکر فایل (Dockerfile) مثه یه دستور پخت میمونه، یه کد یا برنامه ایه که به داکر میگه چطوری Image ها را بیلد کنه

ادامه در پست بعدی...


🆔 @MdDaily
🔥2❤‍🔥1
Md Daily
#ام_دی_کورس داکر فایل (Dockerfile) مثه یه دستور پخت میمونه، یه کد یا برنامه ایه که به داکر میگه چطوری Image ها را بیلد کنه ادامه در پست بعدی... 🆔 @MdDaily
#ام_دی_کورس

داکر ایمیج(Image) یه فایلیه که حاوی همه چیز های لازم برای اجرای یه برنامه یا سرویسه. مثلاً اگه بخوایم یه وب سایت رو روی داکر اجرا کنیم، به یه داکر ایمیج نیاز داریم که حاوی کد وب سایت، سیستم عامل، کتابخانه ها و هر چیز دیگه ای باشه که وب سایت برای اجرا نیاز داره.

داکر ایمیج ها رو می تونیم با استفاده از دستورات داکر بسازیم یا از داکر رجیستری مثه داکر هاب دانلود کنیم. داکر رجیستری یه منبعیه که داکر ایمیج های آماده رو برای دانلود ارائه میده.

یا به عبارت دیگه می تونیم بگیم داکر ایمیج یه نسخه ی آماده ی یه برنامه یا سرویسه که میشه خیلی سریع و آسون اون رو اجرا کرد.


ادامه در پست بعدی...


🆔 @MdDaily
1🔥1
#ام_دی_کورس

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

یا به عبارت دیگه :

داکر ایمیج ها صرفا شامل کد ها و پیش نیاز ها هستند که در کانتینر ها و در یک محیط مستقل اجرا میشن . شما میتونید یه داکر ایمیج داشته باشید و چندین کانتینر که این داکر ایمیج رو اجرا میکنن


ادامه در پست بعدی...


🆔 @MdDaily
🔥31👍1
#ام_دی_کورس

خب تا اینجا با مفاهیم مهم و اساسی داکر آشنا شدیم و حالا وقت اینکه این مفاهیم رو توی عمل ببینیم :)


اگه داکر رو نصب ندارید برای استفاده از داکر توی لینوکس داکر انجین رو نصب کنید:
https://docs.docker.com/engine/install/

و برای مک و ویندوز از داکر دسکتاپ استفاده کنید:
https://docs.docker.com/get-docker/


تفاوت Docker Desktop با Docker Engine:

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


ادامه در پست بعدی...


🆔 @MdDaily
👍31🔥1👏1
#ام_دی_کورس

خب برای ساخت داکر فایل یک فایل بنام Dockerfile ایجاد می کنیم.

برای اینکه نیاز نباشه ما همه چیز رو مثل دپندسی و سیستم عامل از اول کانفیگ و آماده کنیم، میایم با استفاده از دستور:

FROM نسخه ی ایمیج:نام ایمیج

به داکرفایل میگیم که ما می خوایم از تمپلیت آماده مثلا اوبونتو استفاده کنیم :

FROM ubuntu:20.04

پس یعنی ایمیج ما میشه برپایه ی ایمیج ابونتو . اگه شما مثلا داشتید رویه وب سایت کار میکردید بجای ubuntu میتونستید مستقیما از nginx استفاده کنید و دیگه نیازی به نصب و کانفیگ nginx از پایه نبود

درنهایت داکر میاد ایمیج اوبنتو رو از رجیستری docker hub میگیره


ادامه در پست بعدی...


🆔 @MdDaily
1🔥1
#ام_دی_کورس

با استفاده از RUN میتونیم کامند اجرا کنیم :

RUN کامند

اینجا من میخوام از پکیج sl استفاده کنم پس:

RUN apt-get install sl

برای تنظیم و استفاده از environment variables هم از ENV استفاده میشه:

ENV مقدار:نام متغیر

برای نمونه من اینجا مقدار متغیر PORT رو روی 8080 قرار دادم:

ENV PORT=8080


ادامه در پست بعدی...


🆔 @MdDaily
1🔥1
#ام_دی_کورس

حالا میخوایم وقتی که داکر کانتینر اجرا میشه یه دستوری را اجرا کنه. برای این کار توی داکر فایل از CMD استفاده میکنیم:

CMD ["executable", "parameter1", "parameter2"]

توی ایمیج ما قرار وقتی کانتینر اجرا شد پیام Hello MdDaily Members رو نشون بده پس:

CMD [ "echo" , "Hello MdDaily Members 🐳"]


خب کار داکرفایل ما تقریبا تمومه. برای آشنایی بیشتر با Dcokerfile از مستندات داکر استفاده کنید:

https://docs.docker.com/develop/develop-images/dockerfile_best-practices/


ادامه در پست بعدی...


🆔 @MdDaily
1🔥1
#ام_دی_کورس

حالا وقت اینکه ایمیجمون رو بیلد کنیم .
برای این کار دستور docker build رو در ترمینال اجرا میکنیم :

docker build -t ImageTag Directory

👈 پارامتر -t تگ ایمیج رو مشخص میکنه

بعد از اینکه ترمینال رو در محلی که Dockerfile امون قرار داره باز کردیم با اجرای دستور زیر :

dokcer build -t mddailyimage ./

یک ایمیج جدید بنام mddailyimage را بیلد میکنیم و با دستور docker run میتونیم ایمیج ها را اجرا کنیم.

docker run نام ایمیج

پس با اجرای دستور:

docker run mddailyimage

ایمیج ما در کانتینر اجرا میشه .

ادامه در پست بعدی...


🆔 @MdDaily
1🔥1
#ام_دی_کورس

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

دستور docker pull:
برای دانلود یک ایمیج داکر از مخزن عمومی داکر استفاده میشه. به عنوان مثال، برای دانلود ایمیج وب‌سرور nginx میتونید از دستور زیر استفاده کنید:

docker pull nginx


دستور docker run:
برای ایجاد و اجرای یک کانتینر داکر از یک ایمیج استفاده میشه. به عنوان مثال، برای ایجاد یک کانتینر nginx که وب‌سایتی را در پورت 80 ارائه میده میتونید از دستور زیر استفاده کنید:

docker run -p 80:80 nginx


دستور docker ps:
برای نمیش لیست تمام کانتینرهای داکر در حال اجرا استفاده میشه:
docker ps

دستور docker stop:
برای متوقف کردن یک کانتینر داکر استفاده میشه. به عنوان مثال، برای متوقف کردن کانتینر nginx میتونید از دستور زیر استفاده کنید:

docker stop nginx

دستور docker rm:
برای حذف یک کانتینر داکر استفاده میشه. به عنوان مثال، برای حذف کانتینر nginx میتونید از دستور زیر استفاده کنید:

docker rm nginx

دستور docker build:
برای ساخت یک ایمیج داکر از یک فایل Dockerfile استفاده میشه. به عنوان مثال:

docker build -t my-web-server .

دستور docker image ls:
برای نمایش لیست کردن تمام ایمیج های موجود استفاده میشه :

docker image ls

دستور docker image rm:
برای حذف ایمیج داکر استفاده میشه. به عنوان مثال، برای حذف ایمیج my-web-server میتونید از دستور زیر استفاده کنید:

docker image rm my-web-server


🆔 @MdDaily
👍211🔥1👌1
#فان

برای اینکه هوش مصنوعی رو یاد بگیرید باید پایتان کار بشید :)

🆔 @MdDaily
🤣10🌚3
#course

درایو گوگل شامل دوره های:

Microsoft excel
Data analytics
SQL
Business analytics
Data visualization
Big data
Data Science
Web Dev
UI/UX
Product mgt
Project mgt cert
Computer Science
Interview
Resume/CV


🔗 لینک


🆔 @MdDaily
5
داده ها بخش مهمی از هر کسب و کاری هستن.

به طور کلی، شما داده ها را در یک پایگاه داده ذخیره می کنید و فکر می کنید که این کافیه.

اما این فقط نیمی از بازیه.

اگر داده های شما قابل دسترسی نباشن، کسب و کار یا پروژه ی شما از بین میره.

یکی از ترفندهای مهم برای مدیریت داده ها، تکثیر یا ایجاد کپی (replication) از اون هاست.

تکثیر پایگاه داده (Database Replication) چیه؟

فرایند Database Replication شامل نگهداری کپی هایی از داده های شما در چنتا ماشینه.

چرا؟

در دسترس بودن پایگاه داده و سیستم شما را بهبود می بخشه.

دسترسی به داده های شما را مقیاس پذیر می کنه.

همچنین، امنیت داده های شما را افزایش میده.

* تصویر پست نمونه ای از Database Replication هستش

ادامه در پست بعدی...

🆔 @MdDaily
❤‍🔥31🔥1
Md Daily
داده ها بخش مهمی از هر کسب و کاری هستن. به طور کلی، شما داده ها را در یک پایگاه داده ذخیره می کنید و فکر می کنید که این کافیه. اما این فقط نیمی از بازیه. اگر داده های شما قابل دسترسی نباشن، کسب و کار یا پروژه ی شما از بین میره. یکی از ترفندهای مهم برای…
اما Database Replication چطوری کار میکنه؟

*در دیاگرام پست، سه replicas داریم - 1 سبز و 2 نارنجی.

هر
write ای که تو دیتابیس اتفاق میوفته باید توی replica ها هم ثبت بشه.

رایج‌ترین رویکرد Replication مبتنی بر لیدر یا فعال/غیرفعال هستش.

در اینجا (تصویر پست)، سبز رنگ لیدر است و بقیه دنباله رو هستن.

مراحل راه اندازی Replication تیپیکال مبتنی بر لیدر :

👈 کلاینت ها درخواست های write خودشون رو به node لیدر ارسال می کنن.
👈 لیدر داده های جدید رو تو حافظه محلی(local storage) ایش ذخیره میکنه.
👈 لیدر همچنین تغییر داده رو به همه دنباله روهای خود به صورت یک لاگ replication ارسال می کنه.
👈 هر دنباله رو لاگ رو میخونه و کپی ای که از دیتابیس اصلی داشته رو با داده های جدید به روز می کنه.
👈 وقتی که یک کلاینت میخواد داده ها را بخونه، میتونه یک کوئری را به لیدر یا هر یک از دنباله روها ارسال کنه.
لود بالانسرها این کار را به طور خودکار انجام می دن.

به طور کلی، دو رویکرد برای Database Replication وجود داره:

1️⃣ همزمان
2️⃣ غیر همزمان

ادامه در پست بعدی...

🆔 @MdDaily
3❤‍🔥2🔥1
Md Daily
اما Database Replication چطوری کار میکنه؟ *در دیاگرام پست، سه replicas داریم - 1 سبز و 2 نارنجی. هر write ای که تو دیتابیس اتفاق میوفته باید توی replica ها هم ثبت بشه. رایج‌ترین رویکرد Replication مبتنی بر لیدر یا فعال/غیرفعال هستش. در اینجا (تصویر پست)،…
👈 در Replication همزمان، لیدر منتظر میمونه تا همه دنباله روها تأیید کنن که تغییرات را دریافت کردن.

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

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

👈 در Replication غیرهمزمان، لیدر بروزرسانی‌ها رو به دنباله‌ها ارسال می‌کنه، اما منتظر پاسخ دنباله‌رو نمیمونه.

این باعث میشه که لیدر برای پردازش عملیات write جدید آزاد باشه.

اما به قیمت اینکه عملیات write حتی در صورت تأیید به کلاینت، تضمینی برای ماندگاری نداره.


پس چرا به Replication نیاز داریم؟

- داده‌ها همیشه وجود دارن. ایمن و مطمئن

- میتونید بر اساس تقاضا scale کنید

- با قرار دادن سرور های replica در لوکیشن های نزدیک به کاربران داده‌ها نزدیک کاربر باقی میمونه

- هیچ نمونه(instance) ای بیش از حد تحت فشار قرار نمیگیره

- پشتیبان گیری در صورت بروز مشکل

🆔 @MdDaily
❤‍🔥32🔥1
#ام_دی_کورس

💻 کرش کورس Bash noscript

توی این دوره از آموزش های MdDaily قرار باهم یه نگاه سریعی به بش اسکریپت بندازیم، محیط Lab امون رو آماده کنیم و مثال های مختلف رو تست کنیم، پس با من همراه باشید‌ :)

ادامه در پست بعدی...


🆔 @MdDaily
4❤‍🔥1🔥1
Md Daily
#ام_دی_کورس 💻 کرش کورس Bash noscript توی این دوره از آموزش های MdDaily قرار باهم یه نگاه سریعی به بش اسکریپت بندازیم، محیط Lab امون رو آماده کنیم و مثال های مختلف رو تست کنیم، پس با من همراه باشید‌ :) ادامه در پست بعدی... 🆔 @MdDaily
#ام_دی_کورس

آماده سازی محیط کار

خب قبل از هر چیزی ما نیاز به یه جایی داریم که توش بتونیم با Bash کار کنیم .

اگه می خواهید محیطی که توش قرار Bash را یادبگیرید ایزوله و جدا از محیط اصلیتون باشه میتونید از ابزار های زیر استفاده کنید:

☁️ - Google Cloud Shell

دسترسی به سرور لینوکسی ارائه شده توسط گوگل از طریق مرورگر

⌨️ - tutorialspoint

ترمینال لینوکسی با دسترسی های محدود
🐧 - bellard.org

دسترسی به توزیع های مختلفی مثل Fedora و Alpine Linux به صورت رایگان

💻 - onworks.net

ارائه دهنده میزبانی رایگان آنلاین برای توزیع های لینوکسی
🐳 - Docker

استفاده از image های توزیعات لینوکسی

ادامه در پست بعدی...


🆔 @MdDaily
1❤‍🔥1🔥1
Md Daily
#ام_دی_کورس آماده سازی محیط کار خب قبل از هر چیزی ما نیاز به یه جایی داریم که توش بتونیم با Bash کار کنیم . اگه می خواهید محیطی که توش قرار Bash را یادبگیرید ایزوله و جدا از محیط اصلیتون باشه میتونید از ابزار های زیر استفاده کنید: ☁️ - Google Cloud Shell…
#ام_دی_کورس

خب اینجا من از داکر استفاده میکنم

با استفاده از دستور زیر image اوبونتو رو از داکر هاب دریافت کردم

docker pull ubuntu:latest

با استفاده از دستور زیر یه کانتینر اوبونتو اجرا کردم و اسمش رو گذاشتم mddaily-bash

docker run --name mddaily-bash -it ubuntu:latest

با اجرای دستور بالا پس از اجرای کانتینر، میتونید باهاش مثله هر سیستم اوبونتو دیگه ای تعامل داشته باشید. وقتی که کارتون تموم شد و میخواستید از کانتینر خارج بشید، میتونید از دستور exit استفاده کنید که کانتینر را متوقف می کنه

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

docker start -i mddaily-bash

خب حالا که محیط کارمون آماده شده وقتشه که بریم سراغ کار با Bash :)

ادامه در پست بعدی...

🆔 @MdDaily
🔥21
Md Daily
#ام_دی_کورس خب اینجا من از داکر استفاده میکنم با استفاده از دستور زیر image اوبونتو رو از داکر هاب دریافت کردم docker pull ubuntu:latest با استفاده از دستور زیر یه کانتینر اوبونتو اجرا کردم و اسمش رو گذاشتم mddaily-bash docker run --name mddaily-bash…
#ام_دی_کورس

ایجاد و اجرای اولین Bash Shell Script

قدم
اول رو به سمت اسکریپت نویسی شل بردارید :) بریم که یاد بگیریم برای ایجاد یک اسکریپت bash ساده و نحوه اجرای آن چه کاری لازمه 🤔.

اگه باید کاری را بیش از یک بار انجام دهید، اون رو خودکار کنید 🤖!

شما اغلب متوجه میشید که یک کار واحد را در لینوکس بارها و بارها تکرار می کنید 🔁. این کار ممکن است یک بکاپ ساده از یک دایرکتوری باشه 🗃 یا ممکنه پاک کردن فایل های موقت 🗑 یا حتی کلون کردن یک پایگاه داده 💾.

خودکار کردن یک کار یکی از سناریوهای مفید بسیاری هستش که میتونید در اون از قدرت اسکریپت نویسی bash استفاده کنید 🚀.

بریم ببینیم چطوری یه Bash Shell Script ساده ایجاد و اجرا کنیم و چه مواردی رو باید در مورد اسکریپت نویسی شل بدونید 💡.


📁 ابتدا یه دایرکتوری جدید به نام noscripts ایجاد می کنیم که تمام اسکریپت های ما تو این دایرکتوری قرار میگیرن.

برای ایجاد دایرکتوری از دستور mkdir استفاده میشه:

mkdir نام دایرکتوری

یعنی:
mkdir noscripts

با استفاده از دستور cd وارد دایرکتوری میشیم:
cd noscripts


حالا تو این دایرکتوری
noscripts
، با استفاده از دستور cat یک فایل جدید به نام hello.sh ایجاد میکنیم:

cat > hello.sh

بعد از اجرای کامند بالا متن زیر را وارد کنید یا بنویسد:

echo 'Hello, World!'

و در نهایت با فشردن کلید های ترکیبی Ctrl+D ذخیرش کنید و از کامند cat خارج بشید

💡 شما همچنین میتونید از یه ویرایشگر متن مبتنی بر ترمینال مثل Vim، Emacs یا Nano استفاده کنید. اگر از لینوکس دسکتاپ استفاده می کنید، میتونید از ویرایشگر متن گرافیکی مثل Gedit یا vscode هم برای افزودن متن به این فایل یا ایجادش استفاده کنید.


💡 پس، اساسا شما از دستور
echo برای چاپ "Hello, World" استفاده می کنید. میتونید از این دستور به طور مستقیم در ترمینال استفاده کنید، اما در این تست، این دستور را از طریق یک اسکریپت شل اجرا خواهید کرد.

حال برای اجرایی کردن فایل hello.sh از دستور chmod به صورت زیر استفاده کنید:

chmod u+x hello.sh

و در نهایت، اولین Bash Shell Script خود را با قرار دادن "bash" قبل از hello.sh اجرا کنید:


bash hello.sh


روی صفحه نمایش Hello, World! رو میبینید :)


ادامه در پست بعدی...


🆔 @MdDaily
❤‍🔥2🔥2