خب از اونجایی که احتمالا جاهای دیگه سرچ کردید و میدونید داکر چی هست من فرض رو بر این میگیرم که اینجا رو نقطه شروع برای یادگیری داکر میدونید و نه معنی و مفهوم کاریه داکر.
خب بریم سر اصل مطلب. بعد اینکه داکر رو نصب کردید. با دستور `docker –version` میتونیم ورژن داکر خودمون رو ببینیم و با دستور `sudo docker info` اطلاعات کاملی از سیستم و تعداد کانتینر های موجود و ران شده و استاپ شده بدست میاریم.
$ docker --version Docker version 18.06.1-ce, build e68fc7a $ sudo docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0
اگه توجه کرده باشین برای گرفتن ورژن از sudo استفاده نکردم ولی برای info از sudo (دسترسی کاربر ارشد) استفاده کردم. برای اجرای دستورات داکر (که پروسه ای رو در پس زمینه ران میکنند) شما باید دسترسی کاربر ارشد رو داشته باشین. توضیح کاملترش میشه اینکه پروسه بکگراند داکر از سوکت یونیکس پورت tcp استفاده میکنه در حالت پیش فرض سوکت یونیکس مالکیتش با کاربر root هست و بقیه کاربرا تنها با استفاده از sudo به اون دسترسی دارن. بنابرین پروسه بکگراند داکر همیشه باید با sudo اجرا بشه. برای این کار یک گروه docker ایجاد میکنیم و کاربر فعلی رو به اون اضافه میکنیم و برای نتیجه حتما یکبار از محیط دستکتاپ خارج میشیم و دوباره وارد میشیم.
$ sudo groupadd docker $ sudo usermod -aG docker $USER
قدم بعدی اجرای دستور سلام دنیا! یا همون hello-world معروف خودمونه
docker run hello-world
نکته اینکه برای اجرای این دستور چون ایران توسط داکر هم تحریم شده ( بله متاسفانه 😐 ) شما بایستی آی پی سیستمتون رو عوض کنید. راه حلشو برای اوبونتو گذاشتم اخیرا (دور زدن تحریم ها در اوبونتو). برای ویندوز هم هزارتا راه موجوده.
با اجرای این دستور چیز خاصی اتفاق نمیافته. فقط یک صفحه متنی ساده نمایش داده میشه که مطمئن بشیم داکر داره درست کارشو انجام میده.
- کلاینت داکر وصل شد به پردازش اصلی داکر (دیمون پردازش هایی که برنامه هارو در پس زمینه زنده نگه میداره… یه جورایی مثل اینکه وقتی تو گوشیتون یه اپ رو میبندین ولی وقتی پیام میاد براتون برنامه پیام رو دریافت میکنه و براتون نوتیفیکیشن میفرسته)
- پردازش دیمون داکر ایمیج سلام دنیا رو از داکر هاب گرفت (فکر کنم منظورش اینه یه نسخه از ایمیج رو ایجاد کرده. شبیه همونی که تو برنامه نویسی از یک کلاس یه آبجکت درست میکردیم)
- پردازش اصلی کانتینر جدیدی از فایل ایمیج (فایل خام مادر) ایجاد کرده که منجر به پردازشی شده که خروجیش رو این پایین میبینید (منظورش اینه فقط متن رو تولید کرده و هنوز نفرستاده به کلاینت).
- پردازش اصلی یا همون دیمون خروجی رو به داکر کلاینت فرستاده که تو عکس زیر میبینید.
در ادامه ۴ دستور ابتدایی اما پرکاربرد رو خلاصه توضیح میدم
docker image ls => لیست همه ایمیج های دریافت شده docker container ls => لیست همه کانتینتر های در حال اجرا docker container ls --all => لیست همه کانتینتر ها چه در حال اجرا و چه غیر فعال docker container ls -aq => فقط آی دی کانتینر ها رو به لیست میکنه (بدرد انجام کارهای گروهی مثل پاک کردن میخوره)