فرایند اجرای دستور docker run
برای درک بهتر درس های قبلی که به معرفی معماری داکر و همچنین اجزای مختلف داکر پرداختیم در این بخش می خواهیم با مثال دستور docker run
توضیح دهیم که چه اتفاق هایی می افتد.
دستوری که در زیر آمده است از طریق CLI به Docker Daemon دستور می دهد یک کانتینر Ubuntu راه اندازی کند و با خط فرمان (Command-Line) ماشین میزبان تعامل داشته باشد (یعنی دستورهایی را دریافت کند و اجرا کند و خروجی را نمایش دهد) و در ادامه نیز دستور bin/bash/
را که داخل کانتینر ساخته شده اجرا کند.
$ docker run -i -t ubuntu /bin/bash
وقتی دستور زیر را در CLI وارد می کنید اتفاقات زیر به ترتیب رخ می دهد. (مراحل گفته شده در زیر بافرض این است که شما از پیکربندی پیش فرض رجیستری استفاده می کنید. یعنی همان Docker Hub که قبلا توضیح داده شد.)
1- اگر روی سیستم خودتان image ای از ubuntu نداشته باشید، داکر آن را از رجیستری ای که در تنظیمات است دریافت می کند، مثل اینکه شما دستور docker pull ubuntu
را زده باشید.
2- داکر یک کانتینر جدید می سازد، مثل اینکه شما دستور docker container create
را زده باشد.
3- داکر به عنوان لایه ی نهایی کانتینر، یک فایل سیستم قابل خواندن و نوشتن را در اختیار کانتینر قرار می دهد.
4- از آنجایی که شما هیچ گزینه ای را برای شبکه مشخص نکرده اید، داکر یک رابط شبکه برای اتصال کانتینر به شبکه ی پیش فرض ایجاد می کند. این کار شامل اختصاص دادن IP به کانتینر هم می شود. به صورت پیش فرض، کانتینرها می توانند به شبکه های خارجی با استفاده از شبکه ی ماشین میزبانشان وصل شوند.
5- داکر، کانتینر را راه می اندازد (Start) و دستور bin/bash/
را داخل آن اجرا می کند.
به دلیل اینکه کانتینر به صورت تعاملی راه اندازی شده است و با ترمینال شما در ارتباط است (این موضوع به واسطه ی Flag های -i
و -t
است که در دستور قرار دارد). وقتی خروجی دستورتان در ترمینال نمایش داده شد می توانید با استفاده از کیبورد دستورهایی را به کانتینر بدهید تا اجرا کند.
6- وقتی شما برای خاتمه دادن به این ارتباط exit را تایپ کنید، کانتینر متوقف می شود ولی پاک نمی شود. شما می توانید این کانتینر را دوباره راه اندازی کنید یا پاکش کنید. که در بخش های بعدی به صورت کامل با مدیریت کانتینرها آشنا خواهید شد.