دستورات داکر - docker run – docker create – docker ps – docker rm
در این مقاله به معرفی دستورات داکر - docker run – docker create – docker ps – docker rm می پردازیم.
در آموزش قبل به معرفی دستورات مربوط به دانلود، حذف و نمایش لیست image های داکر پرداختیم. در این آموزش به توضیح دستورات دیگری از داکر خواهیم پرداخت.
دستور docker create
به کمک این دستور میتوانیم یک container را از روی image مد نظرمان ایجاد کنیم. این دستور مشابه دستور docker run است که در ادامه توضیح داده ایم با این تفاوت که دستور create فقط container را ایجاد میکند و دستور run آن را ایجاد و اجرا میکند.
دستور زیر را اجرا کنید:
docker create ubuntu
این دستور ابتدا در صورتیکه image مربوط به Ubuntu را پیدا نکند شروع به دانلود آن میکند، سپس یک container از روی آن ایجاد میکند. لیست imageهای داکر را میتوانید از طریق جستجو سایت hub.docker.com پیدا کنید و در انتهای دستور بالا بجای Ubuntu نام image خود را جایگزین کنید.
دستور docker ps
حال با اجرای دستور زیر میتوانید لیست container های در حال اجرا داکر را ببینید:
docker ps
اجرای این دستور container ایجاد شده در مرحله قبل را نمایش نمی دهد چراکه این container تنها ایجاد شده است و در حال اجرا نیست. برای نمایش تمام container ها بدون در نظر گرفتن وضعیت آن ها می بایست به انتهای دستور بالا –a اضافه کنیم:
docker ps -a
حالا یک container می بینید که دارای وضعیت Created است.
CONTAINER ID: شناسه اختصاص داده شده به container که یکتاست.
IMAGE: نام image داکری که container از روی آن ایجاد شده است.
COMMAND: دستوری که به container ارسال شده است. در اینجا bash می باشد.(بعدا بیشتر توضیح خواهیم داد)
CREATED: زمان ایجاد container را مشخص میکند.
STATUS: وضعیت container را نشان میدهد.
PORTS: پورتهای مربوط container را نمایش میدهد.
NAMES: نام container را نمایش میدهد، در صورتیکه نام container را دستی ست نکنیم docker به صورت اتوماتیک یک نام به آن اختصاص میدهد.
دستور docker run
این دستور همانطور که در بالا توضیح داده شد یک container را ایجاد و اجرا میکند.
دستور زیر را در سرور خود وارد کنید:
docker run -i -t -d centos
حالا اگر لیست container ها را با استفاده از دستور docker ps چک کنید یک container فعال مشاهده خواهید کرد.
در دستور بالا –i به معنی این است که container به صورت تعاملی ایجاد شود یعنی امکان ارتباط با آن را داشته باشید.
همچنین –t به این معناست که یک tty به container اختصاص داده شود. که به صورت خلاصه به معنی آن است که شما امکان لاگین بر روی container را داشته باشید.
آپشن –d درصورتیکه استفاده نشود container اجرا میشود و شما به داخل container میروید، یعنی مثلا اگر کانتیر centos را ساخته باشید به صورت اتومات وارد فضای centos که کانتینر شماست خواهید شد و برای خروج از container میبایست دستور exit را وارد کنید تا به فضای سرور اصلی خود بازگردید. حال استفاده از دستور –d کانتینر شما را در background اجرا خواهد کرد و شما به داخل container نخواهید رفت.
حالا دستور زیر را در سرور اجرا کنید:
docker run --name my-nginx -d -p 8080:80 nginx
با این دستور یک کانتینر nginx میسازیم. Nginx یک وبسرور سایت است که می تواند وبسایت شما را اجرا کند.
در دستور بالا –name my-nginx نام container را مشخص میسازد پس نام کانتینر ایجاد شده my-nginx خواهد بود.
آپشن -p 8080:80 نشان دهنده پورتهای expose و publish برای container است.
Expose: منظور از پورت expose پورت داخل container است که ابزار مد نظر شما بر روی آن اجرا میشود. برای مثال nginx بر روی پورت 80 اجرا میشود. یا ابرازی مثل mysql بر روی پورت 3306 اجرا میشود.
Publish: منظور پورتی است که از روی داکر سرور اصلی شما به بیرون منتشر میشود.
در دستور بالا –p publish:expose پورت ها را نشان میدهد یعنی nginx در داخل کانتینر بر روی پورت 80 اجرا شده است و این ابزار از طریق پورت 8080 در خارج از container و بر روی سرور اصلی پابلیش شده است. حالا مرورگر اینترنتی خود را اجرا و در آن آی پی سرور خود را وارد کنید و در انتهای آن پورت 8080 را مشخص کنید.
10.10.10.10:8080
بجای 10.10.10.10 آی پی سرور خود را وارد کنید. حالا صفحه پیش فرض خوش آمدگویی nginx برای شما به نمایش در میآید.
دستور docker rm
حالا میخواهیم کانتینر nginx را حذف کنیم. دستور زیر را وارد کنید:
docker rm my-nginx
این دستور در انتهای خود نام کانتینر مد نظر شما را گرفته است که در اینجا نام کانتینر ما my-nginx بود همچنین میتوانید از CONTAINER ID بجای نام استفاده کنید.
حالا باید با خطای زیر رو به رو شوید:
Error response from daemon: You cannot remove a running container…
این خطا بیان میکند که امکان حذف یک container در حال اجرا وجود ندارد برای اینکار ابتدا کانتینر را stop و سپس آنرا حذف کنید و یا از آپشن فورس یا اجبار استفاده کنید.
دستور زیر را اجرا کنید تا با استفاده از آپشن فورس که –f میباشد کانتینر حذف شود:
docker rm -f my-nginx
دیگر آموزش های دوره داکر:
دستورات داکر - docker pull – docker image ls – docker rmi
دستورات داکر - docker run – docker create – docker ps – docker rm