نحوه اجرای یک کانتینر در داکر

https://negarnovin.com/docs/how-to-run-a-container-in-docker/ · آخرین به‌روزرسانی: · نویسنده: نگارنوین · سایت: نگارنوین · 13 دقیقه مطالعه

📌 خلاصه (TL;DR)

نحوه اجرای یک کانتینر در داکر How To Run a Container in Docker یاد بگیرید که چگونه از اجرای کانتینر docker با مثال‌های عملی استفاده کنید

📊 حقایق کلیدی

URLhttps://negarnovin.com/docs/how-to-run-a-container-in-docker/
تاریخ انتشار2025-09-08
آخرین به‌روزرسانی2026-09-21
نویسندهنگارنوین
ناشرنگارنوین
زبانفارسی (fa-IR)
تعداد کلمات2576
نوع صفحهبرگه

📄 محتوای کامل

نحوه اجرای یک کانتینر در داکر یاد بگیرید که چگونه از اجرای کانتینر docker با مثال‌های عملی استفاده کنید. کانتینرها را به صورت تعاملی یا در حالت جدا اجرا کنید، پورت‌ها را منتشر کنید، حجم‌ها را نصب کنید، نام‌ها را تنظیم کنید و پاکسازی خودکار را فعال کنید.

داکر برنامه‌ها را درون کانتینرها اجرا می‌کند؛ محیط‌های سبک و ایزوله‌ای که نرم‌افزار را به همراه وابستگی‌ها و پیکربندی‌هایش بسته‌بندی می‌کنند. برخلاف ماشین‌های مجازی، کانتینرها به یک سیستم عامل مهمان کامل نیاز ندارند و در عوض هسته میزبان را به اشتراک می‌گذارند. این امر باعث می‌شود کانتینرها سریع‌تر شروع به کار کنند و از نظر منابع کارآمدتر باشند. این docker container runدستور روش اصلی برای شروع کانتینرها از تصاویر، اعمال گزینه‌های زمان اجرا و ایجاد فرآیندهای ایزوله است.

این مقاله نحوه استفاده از آن docker container runبرای راه‌اندازی کانتینرها با تنظیمات سفارشی را توضیح می‌دهد. شما یاد خواهید گرفت که چگونه کانتینرها را نامگذاری کنید، آنها را در حالت جدا اجرا کنید، پورت‌ها را منتشر کنید، حجم‌ها را نصب کنید و پاکسازی خودکار را با آن فعال کنید --rm. همچنین شامل جداول مرجعی است که پرچم‌های مهم اجرای داکر را برای مدیریت منابع، شبکه‌ها، ذخیره‌سازی و سلامت کانتینر شرح می‌دهد.

نسخه پاسخ کوتاه

# Run a container interactively from an image
$ docker container run -it ubuntu

# Run a container in the background
$ docker container run -d nginx

# Run and name the container
$ docker container run --name myapp alpine

# Run and publish container port 80 to host port 8080
$ docker container run -p 8080:80 nginx

# Mount a volume into the container
$ docker container run -v $(pwd):/data alpine

# Run and remove container after it exits
$ docker container run --rm busybox echo "done"

هر دستور، کاربرد اصلی docker container run، از جمله نامگذاری، شبکه، حجم‌ها، حالت تعاملی و پاکسازی را نشان می‌دهد.

گزینه‌های عمومی اجرای داکر

گزینه توضیحات مثال
-d،--detach کانتینر را در پس‌زمینه (حالت جدا) اجرا کنید. -d
--name یک نام دلخواه به کانتینر اختصاص دهید. --name my-nginx
--rm پس از خروج، ظرف را به طور خودکار بردارید. --rm
-e،--env یک متغیر محیطی در کانتینر تنظیم کنید. -e NODE_ENV=production
--env-file بارگذاری متغیرهای محیطی از یک فایل --env-file ./env.list
--entrypoint نقطه ورودی پیش‌فرض تصویر را نادیده بگیرید. --entrypoint /bin/sh
-t،--tty یک شبه TTY برای ورودی تعاملی اختصاص دهید (که معمولاً با استفاده می‌شود -i). -it
-i،--interactive STDIN را حتی اگر متصل نیست، باز نگه دارید (برای حالت تعاملی استفاده می‌شود). -it
--workdir،-w دایرکتوری کاری را درون کانتینر تنظیم کنید. --workdir /usr/src/app

گزینه‌های شبکه‌بندی Docker Run

گزینه توضیحات مثال
-p،--publish برای نمایش یک سرویس، یک پورت کانتینر را به یک پورت میزبان نگاشت کنید. -p 8080:80
-P،--publish-all به طور خودکار تمام پورت‌های کانتینر را در معرض پورت‌های میزبان تصادفی قرار دهید. -P
--network کانتینر را به یک شبکه داکر تعریف شده توسط کاربر متصل کنید. --network backend-net
--add-host یک ورودی DNS سفارشی به فایل کانتینر اضافه کنید /etc/hosts. --add-host db.local:10.0.0.5
--dns سرورهای DNS سفارشی را برای تبدیل نام درون کانتینر مشخص کنید. --dns 1.1.1.1

گزینه‌های ذخیره‌سازی Docker Run

گزینه توضیحات مثال
-v،--volume یک مسیر میزبان یا یک والیوم نامگذاری شده را به مسیر یک کانتینر متصل (mount) می‌کند. -v /data:/app/data
--mount با استفاده از یک سینتکس ساختاریافته برای انواع bind، volume یا tmpfs، فضای ذخیره‌سازی را مونت کنید. --mount type=bind,src=/data,dst=/app
--tmpfs یک سیستم فایل موقت در حافظه درون کانتینر ایجاد کنید. --tmpfs /app/cache
--read-only برای امنیت بیشتر، کل سیستم فایل کانتینر را روی حالت فقط خواندنی تنظیم کنید. --read-only

گزینه‌های مدیریت منابع Docker Run

گزینه توضیحات مثال
--cpus کانتینر را محدود کنید تا فقط از تعداد مشخصی هسته CPU استفاده کند. --cpus 2
--memory،-m یک محدودیت سخت برای استفاده از حافظه تعیین کنید (مثلاً، 512m، 2g). -m 512m
--memory-swap محدودیت ترکیبی حافظه + فضای ذخیره‌سازی را تنظیم کنید. باید با استفاده شود --memory. -1برای مجاز کردن فضای ذخیره‌سازی نامحدود استفاده کنید. --memory-swap 1g
--oom-kill-disable از بسته شدن کانتینر در صورت پر شدن از حد حافظه جلوگیری کنید (توصیه نمی‌شود). --oom-kill-disable
--pids-limit حداکثر تعداد فرآیندهای داخل کانتینر را محدود کنید. --pids-limit 100

گزینه‌های امنیتی Docker Run

گزینه توضیحات مثال
--user کانتینر را به عنوان یک کاربر خاص (UID و GID اختیاری) اجرا کنید. --user 1000:1000
--cap-add/--cap-drop قابلیت‌های هسته لینوکس را برای کانتینر اضافه یا حذف کنید. --cap-drop NET_RAW
--security-opt پروفایل‌های امنیتی کانتینر (مثلاً seccomp، AppArmor، SELinux) را تنظیم کنید. --security-opt seccomp=./profile.json
--privileged دسترسی کامل میزبان به کانتینر را اعطا کنید. فقط در مواقع ضروری (مثلاً برای دسترسی به سخت‌افزار) استفاده کنید. --privileged

گزینه‌های سلامت کانتینر Docker Run

گزینه توضیحات مثال
--health-cmd دستوری که درون کانتینر اجرا می‌شود تا مشخص شود که آیا سالم است یا خیر. --health-cmd "curl -f http://127.0.0.1/"
--health-interval زمان انتظار بین بررسی‌های سلامت (مثلاً، 30s، 1m). --health-interval 30s
--health-retries تعداد خرابی‌های متوالی مورد نیاز برای علامت‌گذاری کانتینر به عنوان ناسالم. --health-retries 3
--no-healthcheck هرگونه بررسی سلامت تعریف‌شده در تصویر را غیرفعال کنید. --no-healthcheck

گزینه‌های اضافی اجرای داکر

گزینه توضیحات مثال
--restart سیاست راه‌اندازی مجدد کانتینر را پیکربندی می‌کند. مقادیر رایج: no، on-failure، always، unless-stopped. --restart always
--log-driver بخش مدیریت ثبت وقایع (logging backend) را مشخص می‌کند (مثلاً، json-file، syslog، none). --log-driver json-file
--pull کنترل می‌کند که داکر چه زمانی تصویر را دریافت می‌کند ( always، missing، یا never). --pull always

اجرای کانتینر تحت نام خاص

--nameاز پرچم with برای اختصاص یک نام دلخواه به کانتینر خود استفاده کنید docker container run. این به ثبت وقایع، مدیریت و اتوماسیون کمک می‌کند. بدون این پرچم، داکر یک نام تصادفی مانند frosty_morse. تولید می‌کند.

نام کانتینرها باید با یک کاراکتر الفبایی-عددی شروع شود و فقط می‌تواند شامل حروف، اعداد، زیرخط ( _)، نقطه ( .) و خط فاصله ( -) باشد.

سینتکس دستور

docker container run --name <container-name> [IMAGE]
  • --name <container-name>: یک نام خاص را به کانتینر اختصاص می‌دهد.
  • [IMAGE]: ایمیج داکر مورد استفاده (مثلاً، nginx، ubuntu، busybox).

نمایش فرمان

  1. یک کانتینر BusyBox با نام ایجاد کنید busybox_test. کنسولکپی
    $ docker container run --name busybox_test busybox
  2. یک کانتینر Nginx با نام ایجاد کنید web-server. کنسولکپی
    $ docker container run --name web-server nginx
  3. یک کانتینر اوبونتو با نام ایجاد کنید linux. کنسولکپی
    $ docker container run --name linux ubuntu
    ​
  4. یک کانتینر نامگذاری شده ایجاد کنید my-nginxو آن را در پس‌زمینه اجرا کنید. کنسولکپی
    $ docker container run --name my-nginx -d nginx
  5. تأیید کنید که کانتینر در حال اجرا است. کنسولکپی
    $ docker container ls
  6. نمایش لاگ‌های مربوط به my-nginxکانتینر. کنسولکپی
    $ docker container logs my-nginx
  7. تغییر نام my-nginxبه my-nginx-2. کنسولکپی
    $ docker container rename my-nginx my-nginx-2
  8. برای تأیید تغییر نام، کانتینرها را فهرست کنید. کنسولکپی
    docker container ls

    خروجی:

    CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
    dbbe80f32d93   nginx     "/docker-entrypoint.…"   20 seconds ago  Up 20 seconds  80/tcp    my-nginx-2

اجرای کانتینر در پس‌زمینه (حالت جدا)

به طور پیش‌فرض، داکر کانتینرها را در پیش‌زمینه اجرا می‌کند و خروجی آنها را در ترمینال شما نمایش می‌دهد. برای اجرای کانتینرها در پس‌زمینه، از -dپرچم (detached) استفاده کنید. این امر به ویژه برای سرویس‌هایی که باید به طور مداوم اجرا شوند، مانند سرورهای وب و کارگران پس‌زمینه، مفید است.

سینتکس دستور

docker container run -d [IMAGE]
  • -d: کانتینر را در حالت جدا اجرا می‌کند.
  • [IMAGE]: تصویری که برای کانتینر استفاده می‌شود (مثلاً، nginx، busybox).

نمایش فرمان

  1. یک کانتینر Nginx را در حالت پس‌زمینه اجرا کنید. کنسولکپی
    docker container run --name nginx-bg -d nginx
  2. مشاهده لاگ‌ها به صورت بلادرنگ. کنسولکپی
    $ docker container logs -f nginx-bg
  3. یک جلسه پوسته (shell session) درون کانتینر باز کنید. کنسولکپی
    $ docker container exec -it nginx-bg bash
  4. یک دستور را درون کانتینر اجرا کنید. کنسولکپی
    # date
    

    خروجی:

    Fri Jun 27 11:22:47 UTC 2025
  5. از پوسته خارج شوید. کنسولکپی
    # exit
    

اجرای کانتینر و انتشار پورت‌های کانتینر

از علامت -pیا برای دسترسی به پورت‌های داخلی یک کانتینر از میزبان استفاده کنید . انتشار پورت به کلاینت‌های خارجی این امکان را می‌دهد که به برنامه‌های کانتینر شده مانند سرورهای وب یا APIها دسترسی پیدا کنند.--publishdocker container run

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

سینتکس دستور

docker container run -p [IP:]<host_port>:<container_port> [IMAGE]
  • -p: یک پورت کانتینر را به سیستم میزبان منتشر می‌کند.
  • [IP:]: (اختیاری) پورت را به یک رابط خاص مانند متصل می‌کند 127.0.0.1.
  • <host_port>: پورتی که روی دستگاه میزبان نمایش داده می‌شود.
  • <container_port>: پورت داخلی در کانتینر.
  • [IMAGE]: ایمیج داکر برای اجرا.

نمایش فرمان

  • پورت کانتینر را 80به پورت میزبان نگاشت کنید 8080. کنسولکپی
    $ docker container run -p 8080:80 nginx
  • پورت میزبان را برای ترافیک UDP 8080به پورت کانتینر نگاشت کنید.1234 کنسولکپی
    $ docker container run -p 8080:1234/udp busybox
  • دسترسی را فقط به localhost محدود کنید. کنسولکپی
    $ docker container run -p 127.0.0.1:8080:80 nginx
  • پورت کانتینر را 80به همان پورت میزبان نگاشت کنید. کنسولکپی
    $ docker container run -p 80:80 nginx
  • چندین پورت (HTTP و HTTPS) را در معرض نمایش قرار دهید. کنسولکپی
    $ docker container run -p 80:80 -p 443:443 nginx

کاربرد دستوری

مثال‌های زیر نحوه‌ی عملکرد انتشار پورت، از جمله دسترسی محلی و از راه دور، را در عمل نشان می‌دهند.

  1. یک کانتینر Nginx اجرا کنید و پورت ۸۰۸۰ را در معرض دید عموم قرار دهید. کنسولکپی
    $ docker container run -d -p 8080:80 nginx
  2. از یک سیستم خارجی به کانتینر دسترسی پیدا کنید (با IP نمونه خود جایگزین کنید). کنسولکپی
    $ curl  http://<SERVER-IP>:8080
    
  3. یک کانتینر را که فقط به دسترسی localhost محدود شده است، اجرا کنید. کنسولکپی
    $ docker container run -d -p 127.0.0.1:8081:80 nginx
  4. تأیید کنید که دسترسی به localhost کار می‌کند. کنسولکپی
    حلقه $  http://127.0.0.1:8081
    
  5. تأیید کنید که دسترسی از راه دور مسدود شده است (انتظار می‌رود که وقفه زمانی یا خطا رخ دهد). کنسولکپی
    $ curl  http://<SERVER-IP>:8081
    

اجرای کانتینر با هاست ولوم مونت شده

به طور پیش‌فرض، کانتینرهای داکر به صورت ایزوله از سیستم فایل میزبان اجرا می‌شوند. برای اشتراک‌گذاری فایل‌ها بین میزبان و کانتینر، مانند پیکربندی برنامه، محتوای وب‌سایت یا داده‌های پایگاه داده، از -vflag برای mount کردن یک دایرکتوری میزبان در کانتینر استفاده کنید.

سینتکس دستور

docker container run -v <host_path>:<container_path>[:options] [IMAGE]
  • -v: یک دایرکتوری را از سیستم میزبان mount می‌کند.
  • <host_path>: مسیر مطلق به یک دایرکتوری روی میزبان.
  • <container_path>: دایرکتوری هدف درون کانتینر.
  • [:options]: تنظیمات اختیاری مانند ro(فقط خواندنی).
  • [IMAGE]: تصویر داکر برای اجرا، مانند nginxیا busybox.

نمایش فرمان

  • یک دایرکتوری میزبان را با دسترسی خواندن و نوشتن در یک کانتینر BusyBox مانت کنید. کنسولکپی
    $ docker container run -v /home/linuxuser/data:/data busybox
  • همان دایرکتوری را به صورت فقط خواندنی mount کنید. کنسولکپی
    $ docker container run -v /home/linuxuser/data:/data:ro busybox

کاربرد دستوری

از این مثال برای ساخت یک وب سرور کانتینری شده در دنیای واقعی با ارائه فایل‌های استاتیک از سیستم میزبان با استفاده از Nginx استفاده کنید. این نشان می‌دهد که چگونه نصب ولوم، اشتراک‌گذاری مداوم محتوا بین میزبان و کانتینر را امکان‌پذیر می‌کند.

  1. برای وب‌سایت استاتیک خود، یک دایرکتوری روی هاست ایجاد کنید. کنسولکپی
    $ mkdir  /home/linuxuser/webdata
    
  2. به دایرکتوری بروید. کنسولکپی
    $ cd  /home/linuxuser/webdata
    
  3. یک صفحه HTML ایجاد کنید. کنسولکپی
    $ cat <<EOF > index.html
    <!DOCTYPE html>
    <html>
    <head><title>Negarnovin Greeting</title></head>
    <body><h1>Greetings from NegarNovin</h1></body>
    </html>
    EOF
  4. یک کانتینر Nginx اجرا کنید که دایرکتوری وب‌سایت را نصب کرده و آن را سرویس می‌دهد. کنسولکپی
    $ docker container run -d -p 8082:80 -v /home/linuxuser/webdata:/usr/share/nginx/html:ro nginx
    • -d: حالت جدا.
    • -p 8082:80پورت میزبان ۸۰۸۲ را به پورت ۸۰ کانتینر نگاشت می‌کند.
    • -v ...:ro: دایرکتوری میزبان را به صورت فقط خواندنی درون کانتینر mount می‌کند.
  5. تأیید کنید که کانتینر، صفحه HTML را ارائه می‌دهد. کنسولکپی
    $ curl http://127.0.0.1:8082

    خروجی:

    <!DOCTYPE html>
    <html>
    <head><title>negarnovin Greeting</title></head>
    <body><h1>Greetings from negarnovin</h1></body>
    </html>

دایرکتوری‌های mount شده حتی پس از حذف کانتینر نیز باقی می‌مانند. تغییرات ایجاد شده در فایل‌های موجود در کانتینر، در میزبان /usr/share/nginx/htmlنیز منعکس می‌شوند ./home/linuxuser/webdata

اجرای کانتینر داکر و حذف خودکار آن پس از خروج

به طور پیش‌فرض، کانتینرهای متوقف‌شده در یک وضعیت روی سیستم باقی می‌مانند exited. از --rmپرچم با docker container runبرای حذف خودکار کانتینر پس از اتمام آن استفاده کنید. این برای کانتینرهای کوتاه‌مدت مانند اسکریپت‌ها، تست‌ها یا وظایف یک‌بارمصرف ایده‌آل است.

سینتکس دستور

docker container run --rm [IMAGE] [COMMAND]
  • --rm: بلافاصله پس از خروج، کانتینر را خارج می‌کند.
  • [IMAGE]: ایمیج داکر برای اجرا.
  • [COMMAND]: دستوری که قرار است درون کانتینر اجرا شود.

نمایش فرمان

  • یک کانتینر اجرا کنید که چاپ می‌کند Hello, worldو خودش حذف می‌شود. کنسولکپی
    $ docker container run --rm busybox echo "Hello, world"
  • یک کانتینر را اجرا کنید که به مدت ۵ ثانیه به حالت خواب می‌رود، سپس خارج می‌شود و خودش را حذف می‌کند. کنسولکپی
    $ docker container run --rm busybox sleep 5
  • یک کانتینر اوبونتو اجرا کنید که تاریخ فعلی را چاپ کند و خودش را حذف کند. کنسولکپی
    $ docker container run --rm ubuntu bash -c "echo Done && date"

کاربرد دستوری

این نمایش نشان می‌دهد که چگونه --rmپرچم از تجمع کانتینرهای خارج شده جلوگیری می‌کند.

  1. یک کانتینر موقت BusyBox را با اجرا کنید --rm. کنسولکپی
    $ docker container run --name busybox --rm busybox echo "Temporary container"
  2. تأیید کنید که دیگر وجود ندارد. کنسولکپی
    $ docker container ls -a

    کانتینر در لیست نمایش داده نمی‌شود. داکر پس از اجرا آن را حذف کرد.

  3. همان کانتینر را بدون موارد زیر --rm اجرا کنید : کنسولکپی
    $ docker container run --name busybox busybox echo "Persistent container"
  4. دوباره همه کانتینرها را فهرست کنید. کنسولکپی
    $ docker container ls -a

    خروجی:

    CONTAINER ID   IMAGE     COMMAND                  CREATED              STATUS                     NAMES
    9f5d3cc7bb3e   busybox   "echo 'Persistent co…"   5 seconds ago        Exited (0) 5 seconds ago   busybox

    این کانتینر در حالت فعلی روی سیستم باقی می‌ماند Exitedو باید با استفاده از به صورت دستی حذف شود docker container rm.

نتیجه‌گیری

در این مقاله، نحوه اجرای کانتینرها با استفاده از دستور را آموختید docker container run. کانتینرها را نامگذاری کردید، آنها را در حالت جدا شده راه اندازی کردید، پورت ها را نگاشت کردید، دایرکتوری های میزبان را نصب کردید و پاکسازی خودکار را با … پیکربندی کردید --rm. همچنین پرچم های کلیدی برای مدیریت شبکه کانتینر، محدودیت منابع، گزینه های امنیتی و بررسی های سلامت را بررسی کردید.

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

🏷️ کلمات کلیدی

نحوه اجرای یک کانتینر در داکر، نسخه پاسخ کوتاه، گزینه‌های عمومی اجرای داکر، گزینه‌های شبکه‌بندی Docker Run، خرید نحوه اجرای یک کانتینر در داکر، قیمت نحوه اجرای یک کانتینر در داکر، بهترین نحوه اجرای یک کانتینر در داکر

🧩 JSON-LD

{"@context":"https://schema.org","@type":"WebPage","headline":"نحوه اجرای یک کانتینر در داکر","url":"https://negarnovin.com/docs/how-to-run-a-container-in-docker/","datePublished":"2025-09-08T03:40:17+03:30","dateModified":"2026-09-21T11:35:50+03:30","author":{"@type":"Person","name":"نگارنوین"},"publisher":{"@type":"Organization","name":"نگارنوین"},"inLanguage":"fa-IR","description":"نحوه اجرای یک کانتینر در داکر How To Run a Container in Docker یاد بگیرید که چگونه از اجرای کانتینر docker با مثال‌های عملی استفاده کنید"}

📈 آمار و ارقام قابل استناد

📄 نحوهٔ استناد به این صفحه

متن ساده:

نحوه اجرای یک کانتینر در داکر — نگارنوین (https://negarnovin.com/docs/how-to-run-a-container-in-docker/)، آخرین به‌روزرسانی 2026-09-21

Markdown:

[نحوه اجرای یک کانتینر در داکر](https://negarnovin.com/docs/how-to-run-a-container-in-docker/) — نگارنوین (به‌روزرسانی 2026-09-21)