در Docker، یک توسعه دهنده image می‌تواند پیش فرض‌های image مربوط به اجرای پیش زمینه و سایر تنظیمات مفید را تعریف کند. اما، با استفاده از دستور docker run [OPTIONS]، شما می‌توانید پیش فرض‌های imageای که توسط توسعه دهنده تنظیم شده است را تغییر دهید. بنابراین به شما کنترل بیشتری بر نحوه عملکرد یک container می‌دهد.

در این مقاله، به طور خلاصه حالت پیش زمینه و حالت پس زمینه اجرای یک container توضیح داده شده است و نحوه اجرای یک Docker container در پس زمینه در حالت detached (جدا و مستقل) نشان داده شده است.

 

 

این مطلب نیز ممکن است برای شما مفید باشد: نحوه نمایش containerها درDocker

 

حالت پیش زمینه (پیش فرض) و حالت پس زمینه

قبل از راه‌اندازی یک Docker container، ابتدا باید تصمیم بگیرید که می‌خواهید آن را در حالت پیش زمینه (پیش فرض) یا بصورت پس زمینه در حالت جدا اجرا کنید.

در حالت پیش زمینه، Docker می‌تواند فرآیند را در container اجرا کرده و کنسول را به ورودی استاندارد فرآیند، خروجی استاندارد و خطای استاندارد متصل نماید.

گزینه‌های خط فرمان در جهت پیکربندی بیشتر دستور Docker ارائه شده است. به عنوان مثال گزینه t- به منظور تخصیص یک pseudo-tty به فرآیند و گزینه i- به منظور باز نگه داشتن STDIN حتی در صورت عدم اتصال استفاده می‌شود. شما همچنین می‌توانید با استفاده از گزینه a=[value]-- آن را به یک یا چند توصیف کننده فایل (STDIN,STDOUT,STDERR) پیوست کنید.

نکته مهم این است که گزینه rm-- به docker می‌گوید، container را هنگام خروج حذف کند.

در مثال زیر، نحوه راه‌اندازی یک Docker Container را در حالت پیش زمینه نشان می‌دهد:

# docker run --rm -ti -p 8000:80 -p 8443:443 --name pandorafms pandorafms/pandorafms:latest

 

 

نقطه ضعف اجرای یک container در پیش زمینه این است که دیگر نمی‌توانید به خط فرمان دسترسی داشته باشید (همانطور که در تصویر بالا مشاهده می‌کنید). این بدان معناست که شما نمی‌توانید، هیچ دستور دیگری را هنگام اجرای container اجرا نمایید.

به منظور اجرای یک Docker Container در پس زمینه، از گزینه d = true- یا تنها از d- استفاده کنید. بدین منظور ابتدا با فشردن [Ctrl+C] آن را از حالت پیش زمینه خارج کرده و سپس آن را بصورت زیر در حالت detached اجرا نمایید:

# docker run -d --rm -p 8000:80 -p 8443:443 --name pandorafms pandorafms/pandorafms:latest

 

به منظور لیست کردن همه containerها، دستور زیر را اجرا کنید (به طور پیش فرض تنها containerهای در حال اجرا را نمایش می‌دهد).

# docker ps -a

 

علاوه بر این، برای اتصال مجدد به یک container جدا شده، از دستور docker attach استفاده نمایید.

# docker attach --name pandorafms
OR
# docker attach 301aef99c1f3

اگر می‌خواهید container فوق یا هر container در حال اجرای دیگری را متوقف کنید، از دستور زیر استفاده نمایید.

# docker stop 301aef99c1f3

دقت کنید که  301aef99c1f3 را با شناسه واقعی container جایگزین کنید.

 

 

 

منبع:

phoenixnap