آشنایی با داکر و دستورات آن – بخش دوم

در مقاله قبل با مفهوم docker, container, image تا حدود زیادی آشنا شدیم. در این بخش قصد داریم با دستورات داکر آشنا بشیم.دستورات داکر Dockerنمایش ورژن داکرdocker --version /// output: Docker version 24.0.5, build ced0996نمایش ورژن داکر به همراه جزئیات بیشترdocker version /// Output Client: Version: 24.0.5 API version: 1.43 Go version: go1.20.6 Git commit: ced0996 Built: Fri Jul 21 20:32:30 2023 OS/Arch: darwin/amd64 Context: desktop-linux Server: Docker Desktop 4.21.1 (114176) Engine: Version: 24.0.2 ...نمایش اطلاعات با جزئیات در مورد داکرdocker info /// output Client: Version: 24.0.5 Context: desktop-linux Debug Mode: false Plugins: buildx: Docker Buildx (Docker Inc.) ... Server: Containers: 7 Running: 6 Paused: 0 Stopped: 1 Images: 8 Server Version: 24.0.2 ...تفاوت run و start موقع اجرای یک containerما میتوانیم به دو صورت زیر یک container را اجرا کنیم، تفاوت این دو دستور چیست؟docker container run IMAGE_NAME docker container start IMAGE_NAMEوقتی از run استفاده میکنیم، همیشه یک container جدید ساخته می‌شود ولی وقتی از start استفاده میکنیم containerی که وجود دارد و قبلا stop شده است اجرا می‌شود.نمایش لیست imageهای داکرdocker image lsنمایش لیست تمام imageهای داکرdocker image ls --all OR => docker image ls -aنمایش لیست containerها## running container docker container ls / OR => docker ps ## list of the all containe docker container ls --all / OR => docker ps -a docker container ls -a ## all container ID in quiet mode docker container ls -aq / OR OR => docker ps -aqلاگهای یک containerdocker container logs CONTAINER_NAME/CONTAINER_IDپردازشهای یک containerdocker container top CONTAINER_NAME/CONTAINER_IDحذف یک containerبه صورت پیشفرض ما فقط میتوانیم containerی را که در حالت اجرا نیست حذف کنیم ولی با اضافه کردن کامند -f میتوانیم آن را force کنیم که حذف شود.docker container rm CONTAINER_NAME/CONTAINER_ID docker container rm -f CONTAINER_NAME/CONTAINER_IDمشاهده config یک container با جزئیات آنوقتی بخواهیم کانفیگ یک کانتینر را بررسی کنیم از جمله network, valume,… و همه مواردی که وجود دارد با استفاده از inspect اینکار را انجام میدهیم.docker container inspect CONTAINER_NAME/CONTAINER_IDنمایش پرفرمنس و میزان مصرف containerهاطبق تجربه ای که قبلا داشتم برای یکی از APIهایی که توی پروژه داشتیم به خاطر query سنگینی که توی دیتابیس داشتیم خطای پرشدن مصرف مموری را توی لاگ خطاهای پروژه داشتیم یکی از کارهایی که کردم مانیتور container و بهبود و مقایسه میزان مصرف مموری طی هر ریفکتور بود.docker container statsاجرای دستورات داخل containerدر ابتدا قبل از اینکه استفاده از option مورد نظر یعنی -it رو توضیح بدیم با استفاده از کامند –help ساختار کامند داکر را بررسی کنیم:با اجرای دستور docker container run –help لیستی از optionهایی که میتوانیم از آنها استفاده کنیم و هچنین ساختار دستور را مشاهده میکنیم.اگر سکرول کنیم پایینتر توضیحات آپشنهای -i و -t را مشاهده میکنیم.اجرای یک container و وارد شدن به محیط آن جهت اجرا دستوراتبا اجرای دستور زیر میتوانیم همزمان هم container را اجرا کنیم و هم ترمینال داخل container را جهت اجرای دستورات bash باز نگه داریم.docker container run -it --name nginx_server nginx bashبرای مثال ما میتوانیم یک image خاص مثل alpine یا ubuntu را اجرا کنیم و با استفاده از bash وارد ان شویم و ان را آپدیت کنیم و پکیج های مختلف نصب کنیم و …نکته: با استفاده از دکمه های Ctr + d میتوانیم از محیط container خارج شویم.وارد شدن به محیط container که قبلا ایجاد شده استدر کامندهای قبل ما همزمان با ایجاد یک container وارد محیط آن هم شدیم و bash را اجرا کردیم. حالا اگر بخواهیم آن را start کنیم با استفاده از راهنمای داکر آن را مشاهده کنیم:حال اگر بخواهیم وارد محیط یک container شویم که قبلا ایجاد شده است و دستوراتی را اجرا کنیم به صورت زیر اقدام میکنیم:docker container start -ai ubuntuاجرای دستورات جدید داخل containerی که در حال اجرا استهمانطور که در دستورات قبل دیدیم با استفاده از run -it میتوانیم همزمان container را ایجاد و با اضافه کردن کامند وارد محیط کانتینر شویم ولی اگر یک container در حال اجرا داشته باشیم و بخواهیم یک command به آن اضافه کنیم بدون اینکه آن را stop و دوباره start کنیم از دستور زیر استفاده میکنیم:docker container exec -it CONTAINER_NAME COMMAND