قبل از اینکه بخوام در مورد دستورات صحبت کنم یه توضیح ساده در مورد image و container بدم
در اصل image یک محیط پایه برای اجرای دستورات یک سیستم عامله (مثل دبیان) و هر image توی داکر با عنوان یک container اجرا میشه یعنی ما یه ایمیج داریم اونو توی یه کانتینر لود میکنیم و توی فضای کانتینر اجرا میشه و اصطلاحا سرویس میده.(مثلا وقتی یه mysql توی داکر داریم که در حال سرویس دهی هست به اون محیط میگیم container)
هدف اینه که ما یک container داشته باشیم که قراره یک سرویس رو اجرا کنه ( مثلا دیتابیس mysql )
اولین کاری که باید بکنیم دور زدن تحریمیه که داکر برای ایران گذاشته
راحتترین روش استفاده از یه vpn یا پروکسی هست که ای پی مارو به یه کشور دیگه تغییر بده( منظورم کشوریه که امریکا دوسش داره باز نرید vpn سوریه بگیرید)
یک سایت ایرانی هم هست که یک ریپازیتوری خصوصی ساخته که میتونیم از اون استفاده کنیم (با اینکه همه ایمیج هارو نداره ولی سرعتش بالاتره) این
هم سایتشه docker.ir توی همون سایت هم توضیح اینکه چطوری اون ریپازیتوری خصوصی رو اضافه کنید رو نوشته فقط تغییرات اوپن سوزه رو اینجا میزارم:
فایل vi /etc/sysconfig/docker رو باز میکنیم و این خط رو بهش اضافه میکنیم:
DOCKER_OPTS="--registry-mirror=http://repo.docker.ir:5000"
فرض میکنیم به یه روشی از تحریم رد شدیم حالا وقتشه که یک ایمیج رو دانلود کنیم و بعدش توی یک container اجراش کنیم
برای اونهایی که مفهوم ایمیج هنوز گنگه براشون:
ایمیج ها محیط های اماده ای هستن که میتونیم سرویس هامونو روی اونا راه بندازیم مثلا ایمیج mysql یا ایمیج centos یکسری ایمیج ها مثل mysql یا wordpress هدفشون مشخص و اماده سرویس دهی هستن ولی یکسری ایمیج ها مثل centos یه محیط خالی بدون استفادهان که کاربردشون اینه که اگر ما خودمون یه نرم افزار داریم مثل ترجمیار خودمون با این ایمیج ترکیب میکنیم و یه ایمیج خصوصی میسازیم که سرویس مارو ارایه میده که در ادامه هر کدوم رو بصورت مجزا توضیح میدیم.
برای دانلود کردن یک ایمیج :
docker pull mysql
برای اجرای یک ایمیج درون container
docker run -it mysql
یه همین سادگی یک سرویس mysql توسط داکر راه اندازی میشه وقتی این دستور رو وارد میکنیم وارد محیط اون کانتینر میشیم اگر بخوایم کانتینر توی بک گراند اجرا بشه از سوییچ دیگه ای استفاده میکنیم
docker run -d mysql
نکته:برای دانلود یک ایمیج حتما لازم نیست docker pull استفاده کنیم همون docker run همه کار رو خودش انجام میده اگر ایمیج دانلود شده بود از اون استفاده میکنه اگر نه دانلود میکنه.
تو عکس پایین من ایمیج mysql رو نداشتم و بصورت خودکار شروع به دانلود کرد.
لیست container ها و image ها
دستور docker ps این دستور لیست container های در حال اجرا رو بهمون میده.
دستور docker images این دستور لیست image های موجود رو بهمون میده.
مثال: راه اندازی یک ایمیج از centos
docker run -it centos:74321
نکته: بعد از centos تگ هست که مشخص میکنه کدوم ورژن مد نظرمونه. مثلا ما ورژن قدیمی رو توی لوکال داریم اگر ورژن رو نزنیم سعی میکنه دوباره بره دانلود کنه چون ورژن جدیدتری براش اومده اما با تگ میتونیم دقیقا ورژن مد نظرمون رو انتخاب کنیم.(تگ رو میتونیم توی خروجی دستور docker images ببینیم)
با دستور exit میتونیم از container خارج بشیم که باعث stop شدنش هم میشه یعنی اگر docker ps بزنیم بازم چیزی نشون نمیده چون کانتینر در حال اجرا نیست.
اما اگر از دستور docker ps -a استفاده کنیم لیست همه کانتینر هایی که داشتیم از جمله اونایی که در حال اجرا نیستن رو هم بهمون میده.
حذف یک container
برای حذف یک container هم میتونیم از id (که بصورت خودکار ساخته میشه) و هم از اسم container (که اگر خودمون بهش ندیم خودکار میسازه) استفاده کنیم . هر دوتارو هم میتونید از خروجی دستور docker ps -a پیدا کنیم.
اگر بخواهیم به کانتینر اسم دلخواه بدیم از سوییج name-- موقع اجرای دستور docker run استفاده میکنیم و جلوش اسم دلخواه رو بنویسیم.
دستور حذف container
docker rm 90e0172d9d0b <--- ای دی کانتینر دلخواه
توی این عکس اول لیست کل container هارو نمایش دادیم بعد اخرین کانتینر رو حذف کردیم و دوباره لیست گرفتیم.
مطلب بعدی: داکر images
مجموعه این تحقیقات و ازمایش هایی که در ادامه مستند میکنم در شرکت پردازش هوشمند ترگمان مجری سامانه های ترجمه ماشینی ترگمان و ترجمیار انجام شده است.