Mekaeil
Mekaeil
خواندن ۴ دقیقه·۱ سال پیش

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

در مقاله قبل با مفهوم 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

لاگهای یک container

docker container logs CONTAINER_NAME/CONTAINER_ID

پردازشهای یک container

docker 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




docker containerداکرcontainer idcontainer namedocker
من میکائیل هستم و در وبلاگم در مورد تجربیات کاریم و باورها و عقاید شخصیم می‌نویسم :)
شاید از این پست‌ها خوشتان بیاید