تولید محتوای برنامه نویسی در یوتوب و همزمان ترکیه سرپرست تیم توسعه هستم
نحوه ساخت ایمیج سفارشی MySql در داکر
فیلم کامل این مقاله در کانال youtube بنده موجود هست.
· داکرایز کردن ساختار دیتابیس و دادهای پروژه
· ایجاد کردن کاربر دیتابیس
· اتصال به کانتینر با نرم افزار MySql Wrokbench از بیرون داکر.
در این مقاله داکر و یا دیتابیس را مورد برسی قرار نمیدهیم، هدف مقاله داکرایز کردن یک دیتابیس می باشد.
ابتدا سعی میکنیم یک دیتابیس ساخته و بعد ساختن، کل ساختار و دیتاهای جداول را در یک فایل خروجی بگیریم، برای این کار از اخرین نسخه مای اسکیول ال و ورک بنج استفاده میکنیم.
با دستور زیر از آخرین نسخه مای اسکیول موجود در داکر هاب یک کانتینر می سازیم و بعد سعی میکینم با ورک بنج بهش وصل بشیم و دیتابیسی داخلش ساخته و خروجی بگیریم ازش.
docker run --name default_db -d -e MYSQL_ROOT_PASSWORD=123 -p 3306:3306 mysql:latest
بعد ساخت کانتینر سعی میکنیم با نرم افزار MySql Workbench بهش وصل بشیم. از لینک زیر آخرین نسخه ورک بنچ را میتوانید دانلود کنید.
https://dev.mysql.com/downloads/workbench/
بعد نصب و اجرا کردن ورک بنچ یک کانکشن به کانتینر میسازیم مثل تصویر زیر.
در قسمت کانکشن یک اسم داده و مشخصات کانتینر را وارد میکنیم، پسور 123 برای یوزر روت را داده و از لوکال هاست با پورت 3306 وصل می شویم.
بعد اتصال یک دیتابیس با نام testdb میسازیم.
یک جدول به اسم users میسازیم و یکسری دیتای فیک داخل جدود وارد میکنیم.
بعد ساخت دیتابیس و ایجاد جدول و اضافه کردن دیتای فیک از این دیتابیس همراه با ساختار و دیتاهای جدول یه خروجی در قالب فایل اسکریپتی میگیریم.
حال فایل اسکریپت دیتابیس آماده هست برای داکرایز کردن، شما اگر دیتابیس از قبل دارید این مراحل نیاز نیست انجام بدین و یا اگر دیتاهای داخل دیتابیس را نیاز ندارید میتوانید حین خروجی گرفتن فقط ساختار دیتابیس رو انتخاب کنید.
داکرایز دیتابیس و ساخت ایمیج سفارشی.
ابتدا یک فایل متنی به اسم Dockerfile ایجاد میکینم، نام حساس به حروف بزرگ و کوچک میباشد، فایل باید بدون هر پسوندی باشد. من از Visual Studio Code استفاده میکنم شما می توانید از هر ادیتوری استفاده بکنید.
نکته: فایل داکر و فایل اسکریپت دیتابیس باید هر دو در یک مسیر باشند.
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD 123
ENV MYSQL_DATABASE testdb
ENV MYSQL_USER my_user
ENV MYSQL_PASSWORD 1234
ADD testdb.sql /docker-entrypoint-initdb.d
EXPOSE 3306
سطر یکم: بیس ایمیج رو مشخص میکینم، تگ latest آخرین نسخه MySql موجود در Docker Hub رو استفاده خواهد کرد.
سطر دوم:با تعریف این Environment به یوزر روت پسورد ست کرده و در نتیجه دسترسی به دیتابیس از بیرون به کاربر روت باز میشود.
سطر سوم: با تعریف این Environment دیتابیسی به اسم tsetdb ایجاد میشود، دقت کنید داخل فایل اسکریپت، قطعه کد CREATE DATABASE IF NOT EXISTS testdb نوشته شده یعنی اگر سطر سوم از داکر فایل نوشته نشود اسکریپت خودش دیتابیس رو اگر نباشد خواهد ساخت. دقت داشته باشید داخل اسکریپت بعد دستور ساخت دیتابیس USE testdb نوشته شده باشد.
سطر چهارم: با تعریف این Environment یک یوزر به اسم my_user ساخته خواهد شد.
سطر پنجم: با تعریف این Environment پسورد my_user ست شده و در نهایت فعال خواهد بود.
سطر شیشم: با دستور ADD فایل اسکریپتی که از دیتابیس خروجی گرفتیم رو به ایمیچ اضافه میکینم.
سطر هفتم: با دستور EXPOSE پورتی که کانتینر مای اسکیوال روی اون باید اجرا شود را مشخص میکینم.
فایل را در کنار فایل اسکریپت ذخیره کرده و از پاور شل به همان مسیر وارد بشید.
نکته:ابتدا کانتینر قبلی را با دستور Docker rm defult_db --force پاک میکنیم.
با دستور زیر داکر فایل را بیلد میکینم.
docker build -t custom_mysql_image .
بعد بیلد شدن از ایمیج بیلد شده یک کانتینر با دستور زیر میسازیم.
docker run --name customdb -p3306:3306 -d custom_mysql_image
در این مرحله دیتابیس داکرایز شده و یک کانتینر ازش ساخته شده. حال میتوانیم با MySql Workbench متصل شده به شکلی که در بالا گفته شد و دیتابیس را داخل آن مشاهده کرد.
موفق و پیروز باشید.
مطلبی دیگر از این انتشارات
کسب درآمد اینترنتی از آموزش دروس ابتدایی
مطلبی دیگر از این انتشارات
رفع مشکل تاریخ فارسی Parsidate در نسخه 5.3 وردپرس
مطلبی دیگر از این انتشارات
۱۲ نوع رایج مدل کسب و کار استارتاپ های سلامت دیجیتال