اولین باری که خواستم با Docker چیزی بسازم، کاملاً گیجکننده بود. با کانتینرها، ایمیجها، ولومها، پورتها، فایلهای Compose و ترمینالی پر از فرمان روبهرو شدم و از خود پرسیدم: آیا برای استفاده از آن باید توسعهدهنده باشم؟
اما پس از درک اصول Docker و استفاده از آن برای نصب و اجرای چند برنامهٔ خودمیزبانیشده، فهمیدم تنها چند فرمان ترمینالی برای رسیدن به نتیجه کافی است. این هفت فرمان را یاد بگیرید تا Docker دیگر ترسناک نباشد.
docker pull
فرمان دریافت یک ایمیج

ابتدا اصطلاحات Docker مرا سردرگم میکرد؛ «ایمیج» در این زمینه، نسخهٔ بستهبندیشدهٔ یک برنامه است که Docker از آن برای ساخت کانتینر استفاده میکند. این ایمیجها را میتوان با فرمان زیر از رجیستری دانلود کرد:
docker pull nginx This command downloads the Nginx image to your computer. While you haven’t started things rolling yet, you will have all the ingredients necessary to create a container. Docker will sometimes download a missing image automatically, so docker pull isn’t always required. However, it’s important to understand the relationship between images and containers, and the pull command makes this much clearer.
docker run
فرمان تبدیل ایمیج به کانتینر

پس از دریافت ایمیج، میتوانید با استفاده از آن کانتینر بسازید؛ برای نمونه:
docker run nginx A typical example might look like this:
docker run -d --name myserver -p 8080:80 nginx While this certainly looks more complicated, it makes more sense when broken down: -d runs the container in the background; --name gives it an easy-to-remember name, and -p connects a port on your computer to the port inside the container.
برای درک بهتر، ایمیج را نقشهٔ اولیه و کانتینر را اجرای همان نقشه در نظر گرفتم. این سادهسازی، فهم Docker را برایم آسانتر کرد.
docker ps
فرمان نمایش وضعیت اجرا





این یکی از مفیدترین فرمانها بود، چون گاهی نمیدانستم در Docker چه میگذرد. کار را با این فرمان شروع کنید:
docker ps This command displays all your currently running containers, along with useful information such as their names, status, images, and ports.
نسخهای که معمولاً استفاده میکنم، docker ps -a است. گزینهٔ -a به Docker میگوید همهٔ کانتینرها، حتی کانتینرهای متوقفشده را نمایش دهد. این تفاوت مهم است؛ نمایش ندادن کانتینر در docker ps به این معنا نیست که ناپدید شده است؛ شاید فقط متوقف شده باشد.
docker logs
فرمان یافتن مشکلات

حتی پس از ساخت چند برنامه، باز هم با مشکلاتی در Docker روبهرو میشوم و این فرمان یکی از مفیدترین ابزارها بوده است:
docker logs myserver Docker then displays the output generated by the container, revealing issues such as startup errors, configuration problems, connection failures, and other useful clues about what went wrong.
نسخهٔ مفید دیگر، docker logs -f myserver است؛ گزینهٔ -f امکان دنبالکردن زندهٔ خروجی را فراهم میکند. هر بار که در مرورگر با مشکلی روبهرو میشوم، بررسی لاگها معمولاً پاسخ را آشکار میکند.
در این مثالها، myserver نامِ جایگزین کانتینر شماست. آن را با نام واقعی کانتینری که میخواهید با آن کار کنید جایگزین کنید. اگر نام کانتینر را نمیدانید، docker ps را اجرا کنید و ستون NAMES را ببینید.
docker exec
فرمان ورود به کانتینر

اگر پس از بررسی لاگها هنوز علت مشکل روشن نیست، بررسی داخل خود کانتینر کمک میکند؛ اینجاست که docker exec به کار میآید. نمونه:
docker exec -it myserver sh The -i and -t make the session interactive, while -sh launches the shell. It sounds complicated, but you’re basically just asking it to open a terminal inside the container. From there, you can inspect files and run commands, just as you would in a normal terminal.
docker stop
فرمان متوقفکردن کانتینر

پس از پایان کار با کانتینر، لازم نیست آن را حذف کنید؛ کافی است با این فرمان متوقفش کنید:
docker stop myserver By doing so, you shut down the running container, but it stays on your system. This comes in handy when I am experimenting with Docker and don’t need the application running. I can easily start the container running again, without having to go through the motions of recreating it.
اما اگر میخواهید کانتینر را بهطور کامل حذف کنید، از فرمان نهایی زیر استفاده کنید:
docker rm
فرمان حذف کانتینر

اگر مطمئنید دیگر به کانتینر نیاز ندارید، میتوانید با این فرمان آن را حذف کنید:
docker rm myserver If the container is still running, you’ll likely have to stop it first, using docker stop myserver . Your container is then removed, but the image remains. Understanding how these elements are separate removed much of the initial confusion surrounding Docker.
لازم نیست متخصص Docker باشید
بزرگترین درسی که از Docker آموختم این است که نیازی به حفظکردن فرمانهای فراوان نیست؛ کافی است بدانید هر فرمان چه کاری انجام میدهد. روند کار ساده است: یک ایمیج دریافت میکنید، با آن کانتینر میسازید، وضعیت اجرای آن را بررسی میکنید، در صورت نیاز عیبیابی میکنید و در نهایت آن را متوقف یا حذف میکنید.
این هفت فرمان برای شروع کافیاند؛ بقیه را در مسیر کار، با آزمونوخطا، رفع مشکل و پاکسازی یاد میگیرید. به همین دلیل Docker دیگر برایم ترسناک نیست؛ گامبهگام پیش رفتم و فقط بر چند فرمان ضروری تمرکز کردم.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Jack Mitchell است. مشاهده مقاله اصلی